بکندباز

error_reporting در php

error_reporting()‎ یک تابع از پیش تعریف شده PHP است. این تابع به ما اجازه کنترل تعداد و نوع گزارش خطاهای PHP را می دهد. همانطور که قبلاً گفتیم PHP چندین سطح از خطا دارد. استفاده از تابع error_reporting()‎ آن سطح را در مدت زمان اجرای اسکریپت فعلی شما تنظیم می کند.

فایل php.ini دارای یک دستورالعمل error_reporting است که در زمان اجرا توسط این تابع می تواند دوباره تنظیم شود.

سینتکس

error_reporting (int $level)  

level$ یک پارامتر اختیاری در تابع error_reporting()‎ است. اگر سطح تنظیم نشده باشد، این تابع سطح گزارش خطای فعلی را برمی گرداند.

level (اختیاری)

این پارامتر سطح گزارش خطا را برای اسکریپت فعلی مشخص می کند.

مقدار بازگشتی

اگر پارامتر level داده نشود، سطح فعلی را برمی گرداند. در غیر این صورت، error_reporting سطح مشخص شده را برمی گرداند.

تغییرات

نسخه ها شرح
PHP 8.0 level اکنون می تواند null باشد
PHP 5.4 E_STRICT به بخشی از E_ALL تبدیل شده است.
PHP 5.3

 

E_DEPRECATED و E_USER_DEPRECATED به تازگی در PHP 5.3 اضافه شده اند.
PHP 5.2 E_RECOVERABLE_ERROR در PHP 5.2 اضافه شده است.
PHP 5.0 E_STRICT به تازگی در PHP 5.0 معرفی شده است.

مثال

با کمک برنامه PHP سطوح مختلف گزارش خطا را مشخص کنید:

<?php  
    // تمام گزارش خطاها را خاموش کنید
    error_reporting (0);  

    // گزارش تمام خطاهای PHP 
    error_reporting (E_ALL)؛  

    // گزارش تمام خطاهای PHP
    error_reporting (-1);  

    // گزارش همه خطاها به جز E_NOTICE    
    error_reporting (E_ALL & ~E_NOTICE)؛  

    // خطاهای اجرای ساده را گزارش دهید
    error_reporting (E_WARNING | E_ERROR | E_PARSE)؛  

    // E_NOTICE همچنین برای گزارش متغیرهای اولیه خوب است
    error_reporting ( E_WARNING |E_ERROR | E_PARSE | E_NOTICE);  

    // همان error_reporting (E_ALL) است.
    ini_set ( 'error_reporting' , E_LL);     
?>  

نکات مهم error_reporting()‎

  • با ارسال ورودی (0) به تابع error_reporting، می توانید تمام خطاها، هشدارها، اعلان ها و پیام ها را خاموش کنید. بهتر است به جای اینکه این کد را در هر فایل PHP بنویسید، پیام های گزارش را در فایل htaccess. یا ini غیر فعال کنید.
    error_reporting(0); ​
  • PHP به توسعه دهندگان اجازه می دهد تا از متغیرهای اعلام نشده استفاده کنند. اما این متغیرهای اعلام نشده زمانی که در دستورات شرطی و حلقه استفاده می شوند می توانند برای برنامه مشکل ایجاد کنند.
    گاهی اوقات، ممکن است این اتفاق بیفتد که متغیری که در دستورات شرطی یا حلقه ها استفاده می شود، املای متفاوتی داشته باشد. بنابراین، برای نمایش گزارش متغیرهای اعلام نشده در برنامه، E_NOTICE را در تابع error_reporting ارسال کنید.

    error_reporting(E_NOTICE);
  • تابع ()error_reporting اجازه می دهد تا خطای خاصی که کاربر می خواهد نمایش داده شود. با استفاده از کاراکتر ~ می توانید خطا را فیلتر کنید. به عنوان مثال – ~E_NOTICE به این معنی است که اعلامیه ها نمایش داده نمی شوند. در خط کد زیر، تمام خطاها به جز E_NOTICE نمایش داده می شود.
    error_reporting (E_ALL & ~E_NOTICE);
  • در زیر سه خط کد داده شده است، که مانند error_reporting (E_ALL) کار می کند، به این معنی که تمام خطاهای PHP را نیز نمایش می دهد. error_reporting (E_ALL) بیشتر برای نمایش خطاها استفاده می شود زیرا خواندن و درک آن آسان است.
    error_reporting(-1);  
    error_reporting(E_ALL)  
    ini_set('error_reporting', E_ALL);  ​
zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*