آشنایی کامل با انواع خطاها در PHP
وجود خطا در برنامه های PHP امری محتمل است و کاملاً هم طبیعی است. به عنوان برنامه نویس، باید با انواع این خطاها آشنا بوده و آنها را برطرف کنیم. حالا اگر هم خواسته باشیم افزونه یا پوسته ای برای وردپرس بنویسیم، باز هم باید با انواع خطاها در PHP آشنا باشیم. این مقاله برای آموزش این مقوله به شما دوستان عزیز علاقه مند به برنامه نویسی وردپرس است.
اول از همه باید دانست که فعال بودن نمایش خطاها در PHP و اینکه چه نوع خطاهایی نمایش داده شوند، بستگی کامل به تنظیمات PHP درون سند php.ini دارد. اما حتی برای انجام این تنظیم هم، اول باید بدانیم که در PHP چند نوع خطا ما داریم.
PHP دارای ۴ نوع اصلی خطا به شرح زیر است.
۱- خطای نحوی یا Parse error یا Syntax Error
این نوع خطا به دلیل کم توجهی برنامه نویس است. معمولاً به دلیل گذاشتن یک نویسه کم و یا زیاد، یا جابجا شدن آن، این نوع خطا بروز میکند. با برطرف کردن آن، مفسر PHP مجدد تفسیر را انجام داده و این بار دیگر خطایی بر نمی گرداند. نمونه ای از این خطا در زیر آورده شده است:
PHP Parse error: syntax error, unexpected '=' in /home/18cb2875ac563160a6120819bab084c8.php on line 3
۲- خطای بحرانی یا Fatal Error
در این نوع خطا، مفسر PHP برنامه را درک می کند. اما مکان تعریف شدن تابع یا چیز دیگر را پیدا نمی کند. مثلاً از یک تابعی استفاده کردید که نه در خود PHP وجود دارد و نه از قبل تعریفش کردید.
PHP Fatal error: Uncaught Error: Call to undefined function diff() in /home/36db1ad4634ff7deb7f7347a4ac14d3a.php:12 Stack trace: #۰ {main} thrown in /home/36db1ad4634ff7deb7f7347a4ac14d3a.php on line 12
۳- خطای هشداری یا Warning Errors
خطای هشداری از درجه اهمیت کمتری نسبت به دو مورد قبلی برخوردار است. اما باز هم باید حتماً در برنامه ما رفع شوند. در زمان هایی که یک سند در بین کدهای ما فراخوانی می گردد که وجود خارجی ندارد، این دست خطا برگردانده خواهد شد.
PHP Warning: include(gfg.php): failed to open stream: No such file or directory in /home/aed0ed3b35fece41022f332aba5c9b45.php on line 5 PHP Warning: include(): Failed opening 'gfg.php' for inclusion (include_path='.:/usr/share/php') in /home/aed0ed3b35fece41022f332aba5c9b45.php on line 5
۴- خطای اعلانی یا Notice Error
این نوع خطا هم تقریباً مثل هشدارها است. این خطا نشان می دهد که برنامه یک مشکلی دارد. اما این مشکل جلوی اجرای بقیۀ کدها را نمی گیرد و برنامه اجرا می شود. مثل چاپ کردن متغیری که از قبل وجود ندارد.
PHP Notice: Undefined variable: geeks in /home/84c47fe936e1068b69fb834508d59689.php on line 5
ثابت های خطاها در PHP
این ۴ نوع خطا در PHP جزء اصلی ترین خطاها بودند. اما برای اینکه بفهمید انواع کامل خطاها به چه صورتی هستند، بهتر است با تمامی ثابت های خطاها در PHP آشنا شوید.
- E_ERROR : A fatal error that causes script termination
- E_WARNING : Run-time warning that does not cause script termination
- E_PARSE : Compile time parse error.
- E_NOTICE : Run time notice caused due to error in code
- E_CORE_ERROR : Fatal errors that occur during PHP’s initial startup (installation)
- E_CORE_WARNING : Warnings that occur during PHP’s initial startup
- E_COMPILE_ERROR : Fatal compile-time errors indication problem with script.
- E_USER_ERROR : User-generated error message.
- E_USER_WARNING : User-generated warning message.
- E_USER_NOTICE : User-generated notice message.
- E_STRICT : Run-time notices.
- E_RECOVERABLE_ERROR : Catchable fatal error indicating a dangerous error
- E_DEPRECATED : Run-time notices.
مثلاً یک نوع خطای DEPRECATED هم داریم که توابع و کلاس های بد دانسته شده که در نسخه های آتیِ PHP حذف می شوند را به ما گوشزد می کند.