توابع set_error_handler() PHP
مثال
برای تنظیم برنامههای کاربری تعریف شده خطا، از تابع set_error_handler() استفاده کنید و سپس خطا را ایجاد کنید (از طریق trigger_error()):
<?php // کاربر تعریف کرده است function myErrorHandler($errno, $errstr, $errfile, $errline) { echo "<b>خطای شخصی:</b> [$errno] $errstr<br>"; echo " خطا در خط $errline در $errfile<br>"; } // 设置用户定义的错误处理函数 set_error_handler("myErrorHandler"); $test=2; // خطا فعال if ($test>1) { trigger_error("یک خطای سفارشی فعال شده است"); } ?>
خروجی کد بالا مشابه این خواهد بود:
خطای سفارشی: [1024] یک خطای سفارشی فعال شده است خطا در خط 14 در C:\webfolder\test.php
تعریف و استفاده
دستورالعمل set_error_handler() برنامههای خطای کاربر تعریف شده را تنظیم میکند.
نکته:با استفاده از این کاربرگزار، برنامههای خطای استاندارد PHP دور زده میشوند و در صورت نیاز، برنامههای خطای کاربر تعریف شده از طریق die() اجرا میشوند.
نکته:در صورت بروز خطا قبل از اجرای اسکریپت (مثلاً در هنگام آپلود فایل)، برنامههای خطای تعریف شده کاربر فراخوانی نمیشوند زیرا در آن زمان ثبت نشدهاند.
قانوننویسی
set_error_handler(errorhandler,E_ALL|E_STRICT);
پارامترها | توضیح |
---|---|
errorhandler | ضروری. نام برنامههای خطای کاربر تعریف شده را تعیین میکند. |
E_ALL|E_STRICT | اختیاری. تعیین میکند که کدام سطح گزارش خطا به کاربر نمایش داده شود. پیشفرض "E_ALL" است. |
جزئیات فنی
مقدار بازگشتی: | یک رشته شامل برنامههای خطا پیشبینی شده. |
---|---|
نسخه PHP: | 4.0.1+ |
رویدادهای بهروزرسانی PHP: |
در PHP 5.5: پارامترها errorhandler NULL اکنون پذیرفته میشود در PHP 5.2: برنامههای خطا باید FALSE را بازگردانند تا $php_errormsg نمایش داده شود. |