تقوم الدالة set_error_handler() بتعيين وظيفة معالجة الأخطاء المعرفة من قبل المستخدم.
تُستخدم هذه الوظيفة لإنشاء طريقة معالجة الأخطاء الخاصة بالمستخدم أثناء وقت التشغيل.
تقوم هذه الدالة بإرجاع معالج الأخطاء القديم أو NULL عند الفشل.
set_error_handler (وظيفة_خطأ، أنواع_الخطأ)
المعلمة | يصف |
---|---|
error_function | مطلوب. يحدد الوظيفة التي سيتم تشغيلها عند حدوث خطأ. |
error_types | خياري. يحدد مستوى الإبلاغ عن الأخطاء الذي يتم عرض الأخطاء المحددة بواسطة المستخدم فيه. الافتراضي هو "E_ALL". يتم تفصيل مستويات الإبلاغ عن الأخطاء المحتملة في الجدول أدناه. |
وظيفة_خطأ (مستوى_الخطأ، رسالة_خطأ، ملف_خطأ، سطر_خطأ، سياق_خطأ)
المعلمة | يصف |
---|---|
error_level | مطلوب. يحدد مستوى الإبلاغ عن الأخطاء للأخطاء المعرفة من قبل المستخدم. يجب أن يكون رقم القيمة. يتم تفصيل مستويات الإبلاغ عن الأخطاء المحتملة في الجدول أدناه. |
error_message | مطلوب. يحدد رسالة الخطأ للأخطاء المعرفة من قبل المستخدم. |
error_file | خياري. يحدد اسم الملف الذي حدث فيه الخطأ. |
error_line | خياري. يحدد رقم السطر الذي حدث فيه الخطأ. |
error_context | خياري. يحدد مصفوفة تشير إلى جدول الرموز النشط حيث حدث الخطأ. بمعنى آخر، error_context سيحتوي على مصفوفة تصف النطاق الوجودي الذي يُلقي فيه كل متغير خطأ. |
قيمة | ثابت | يصف |
---|---|---|
2 | تحذير إلكتروني | خطأ غير فادح في وقت التشغيل. لم يتم إيقاف تنفيذ البرنامج النصي. |
8 | إشعار إلكتروني | إخطارات وقت التشغيل. يمكن أن يكون اكتشاف البرنامج النصي خطأ، ولكن يمكن أن يحدث أيضًا عند تشغيل البرنامج النصي بشكل طبيعي. |
256 | E_USER_ERROR | خطأ فادح أنشأه المستخدم. يشبه هذا الخطأ E_ERROR الذي أنشأه المبرمج باستخدام وظيفة PHPزناد_خطأ(). |
512 | E_USER_WARNING | خطأ غير فادح أنشأه المستخدم. هذا يشبه E_WARNING الذي أنشأه المبرمج باستخدام وظيفة PHP مشغل_خطأ (). |
1024 | E_USER_NOTICE | الإخطارات التي أنشأها المستخدم. هذا يشبه E_NOTICE الذي أنشأه المبرمج باستخدام وظيفة PHP مشغل_خطأ (). |
4096 | E_RECOVERABLE_ERROR | أخطاء قاتلة يمكن التقاطها. يشبه هذا الخطأ E_ERROR الذي يمكن اكتشافه بواسطة مقبض محدد من قبل المستخدم (راجع set_error_handler()). |
8191 | E_ALL | جميع مستويات الأخطاء والتحذيرات باستثناء E_STRICT (منذ PHP 6.0، سيكون E_STRICT جزءًا من E_ALL). |
نصيحة: إذا تم استخدام هذه الوظيفة، فسيتم تجاوز وظائف معالجة الأخطاء القياسية في PHP بالكامل. إذا لزم الأمر، يجب على معالج الأخطاء المحدد من قبل المستخدم إنهاء البرنامج النصي (die()). ملاحظة: إذا حدث خطأ قبل تنفيذ البرنامج النصي، فلن يتم استخدام معالج الأخطاء المخصص لأنه لم يتم تسجيل البرنامج المخصص في ذلك الوقت.
<?php// وظيفة معالج الأخطاء function customError($errno, $errstr, $errfile, $errline) { echo "<b>خطأ مخصص:</b> [$errno] $errstr<br />" echo " خطأ في السطر $errline في $errfile<br />"; echo "إنهاء البرنامج النصي"; die(); }//خطأ في المجموعة Handlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) { Trigger_error("تم تشغيل خطأ مخصص" }?>
يبدو إخراج الكود أعلاه كما يلي:
خطأ مخصص: [1024] تم تشغيل خطأ مخصص في السطر 19 في C:webfoldertest.phpEnding Script