توابع 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 نمایش داده شود.