دالة set_error_handler() في PHP

مثال

من خلال دالة set_error_handler() يتم تعيين برنامج معالجة الأخطاء المخصص، ثم يتم إطلاق الخطأ (من خلال دالة trigger_error()):

<?php
 // 用户定义的错误处理函数
 function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "<b>Custom error:</b> [$errno] $errstr<br>";
     echo " Error on line $errline in $errfile<br>";
 }
 // 设置用户定义的错误处理函数
 set_error_handler("myErrorHandler");
 $test=2;
 // إطلاق خطأ
 if ($test>1) {
     trigger_error("A custom error has been triggered");
 }
 ?> 

يبدو مخرج الكود أعلاه مثل هذا:

خطأ مخصص: [1024] تم إطلاق خطأ مخصص
 خطأ في السطر 14 في C:\webfolder\test.php

التعريف والاستخدام

تحدد وظيفة set_error_handler() معالج الأخطاء المخصص.

التعليقات:إذا تم استخدام هذه الوظيفة، فإنها تتجنب معالج الأخطاء القياسي لـ PHP، وستقوم بإنهاء سكربت عبر die() إذا لزم الأمر.

التعليقات:التعليقات: إذا حدث خطأ قبل تنفيذ سكربت (مثل عند تحميل الملف)، لن يتم استدعاء معالج الأخطاء المخصص لأنه لم يتم تسجيله في ذلك الوقت.

الجملة

set_error_handler(معالج الأخطاء,E_ALL|E_STRICT);
المعلمات الوصف
معالج الأخطاء مطلوب. يحدد اسم وظيفة معالج الأخطاء المحدد مسبقًا.
E_ALL|E_STRICT اختياري. يحدد مستوى التقارير الإخبارية التي يتم عرضها من خلال الأخطاء المحددة مسبقًا. القيمة الافتراضية هي "E_ALL".

تفاصيل تقنية

القيمة الم返回ة: يحتوي على سلسلة من المعالجين الإخباريين المحدد مسبقًا.
إصدار PHP: 4.0.1+
سجل تحديثات PHP:

PHP 5.5: المعلمات معالج الأخطاء يُقبل الآن NULL

PHP 5.2: يجب أن يعود المعالج الإخباري FALSE لتظهر $php_errormsg.