با سلام خدمت شما دوستان عزیز ، و گرامی ، سری اموزشهای  php درخدمتتونیم.امروز درباره  php debugging بحث میکنم.اکثر برنامه ها اولین بار کاملاً درست کار نمی کنند. خیلی چیزها در برنامه ی شما ممکن است خراب شود  و به مشکل بر به خورد که مفسر و interpreter PHP را مجبور به صدور پیغام خطا {error message} می کند. مکانی که اخطار به آنجا ارسال می شود را شما می توانید انتخاب کنید. این پیغام را می توانید همراه با خروجی برنامه های دیگر به مرورگر وب ارسال کنید. آن ها را همچنین می توانید در {web server error log} وِب سِرور مربوط به خطا بگنجانید.

برای نمایش پیغام های خطا در مرورگر،  display_errors  را on  قرار دهیم. برای ارسال خطاها به web server error log باید log_errors را on  بگذاریم. اگر یخواهید خطاها در هر دو مکان وجود داشته باشد هر دوی انها را on  بگذارید.

PHP  ثابت هایی را معرفی و define می کند که شما با کمک آن می توانید مقدار value} error_reporting} را طوری تنظیم کنید که فقط خطا ها {errors} ی (نوع) خاصی گزارش شوند : E_ALL (برای تمام خطاها به جز strict notices {تذکرات سخت و دقیق}) E_PARSE (parse errors) ، E_ERROR (fatal errors) ، E_WARNING (warnings)، E_NOTICE (notices) ،and E_STRICT (strict notices).

هنگامی که دارید برنامه تان را می نویسید، به شما توصیه می شود که از ویراستارهای حساس و آگاه به PHP مثل BBEdit و Emacs استفاده کنید.یکی از ویژه گی های مخصوص این ویراستارها syntax highlighting {برجسته کردن گرامر یا دستور نحوی برنامه} است.

رنگ بخش هایی از برنامه ی شما را بسته به آن نوع و کاربرد بخش تغییر می دهد. برای مثال، رشته ها {string} صورتی هستند،  کلیدواژه هایی مثل while و  ifآبی هستند،  نظرها {comments} خاکستری هستند و متغیرها {variables} مشکی می باشند.

ویژگی دیگر تطبیق و تناسب بین bracket و quote {علامت [] و ” “} می باشد، که تناسب و توازن بین bracket و  quote پدید می آورد. هنگامی که علامت {را تایپ می کنید،  برنامه ی ویراستار این علامت} را که ادامه و مکمل علامت اولی می باشد را برجسته و روشن می سازد.

نکات زیر را هنگام اشکال زدایی {debugging} برنامه بررسی کنید.

missing semicolon {نقطه ویرگول مفقود} :  تمام دستورهای {statement} PHP به این علامت، خطم می شود. PHP تا زمانی که به یک نقطه ویرگول نرسد، خواندن دستور را متوقف نمی کند.اگر نقطه ویرگول واقع در انتهای خط را حذف کنید PHP به خواندن دستور در خط بعدی ادامه می دهد.

not enough equal sign{تعداد ناکافی علامت =} : هنگامی که می خواهید بدانید آیا دو مقدار {value} در مقایسه با هم برار هستند یا نه باید از دو علامت مساوی استفاده کنید (= =). استفاده ازفقط یک علامت مساوی اشتباه معمول است.

misspelled variable names {اسم متغیرهایی که اشتباه نوشته شده} :  اگر شما اسم متغیر را اشتباه بنویسید، PHP آن را ب عنوان یک متغیر جدید می شناسد. به خاطر داشته باشید که برای PHP : $test با متغیر $Test یکی نیست.

missing dollar sign {علامت دلار مفقود} :  کشف کردن علامت دلاری که گمشده، به خصوص در اسم متغیر، بسیار دشوار است، ولی معمولاً منجر به صدور پیغام خطا می شود که به شما نشان می دهد کجا باید دنبال مشکل بگردید.

troubling quote { مشکل سازی و علامت نقل و قول } :  احتمال دارد از تعداد زیاد یا کمی استفاده کنید یا حتی نوع نامناسب آن را انتخاب کنید .پس حتماً سعی کنید در به کار گیری آن تعادل برقرار کنید.

missing parenthesis  or curly brackets {پرانتز یا آکولاد گمشده} : همیشه باید یک جفت باشند {} و ().

array index {شاخص آرایه} :  تمام آرایه ها باید از ۰  شروع شوند نه از ۱٫

به علاوه، تمام خطاها {error} را به درستی مدیریت کنید، تمام {trace message} پیام های ردیابی را به فایل گزارش سیستم {system log file} هدایت کنید که در صورت بروز هرگونه مشکل log و وارد system file شود که شما در آینده بتوانید آن را رفع یا اشکال زدایی کنید.