اذهب إلى المحتوى

السؤال

نشر

أحاول تشغيل سكريبت PHP قديم نوعًا ما، ولكن تظهر الكثير من التحذيرات (خصوصًا في حلفات التكرار loop)، لذلك أريد أن أقوم بإيقاف (أو إخفاء) هذه التحذيرات مؤقتًا فقط، لكن في نفس الوقت أريد أن تظهر أي أخطاء Errors لكي أتمكن من حل أي مشاكل في السكريبت

كيف يتم إيقاف التحذيرات فقط في PHP؟

Recommended Posts

  • 1
نشر

إذا كان لديك دالة تُظهر بعض التحذيرات أثناء إستدعائها فيمكنك أن تقوم بإضافة علامة @ قبل إستعائها على النحو التالي:

@my_function();

يُسمى هذا الرمز بمعامل التحكم بالخطأ Error Control Operators، يمكنك إستخدام هذا المعامل أيضًا عند البحث في مصفوفة ما أو إستعمال متغير غير مُعرف:
 

@$not_exists_var['some_value'];	//PHP Notice:  Undefined variable: test

سوف يُعيد هذا المعامل NULL في هذه الحالة

يمكنك الإطلاع على توثيق هذا المعامل في موسوعة حسوب من هنا

أيضًا يمكنك أن تستخدم الدالة error_reporting لكي تخفي كل التحذيرات وتظهر كل أنواع الخطأ الأخرى بالشكل التالي:

error_reporting(E_ALL ^ E_WARNING); 

في حالة أردت إخفاء مل رسائل الخطأ والتحذيرات، فيمكنك أن تستعمل الكود التالي:

error_reporting(0);

تمرير القيمة 0 إلى الدالة error_reporting سوف يقوم بإيقاف كل رسائل الخطأ والتحذيرات بكل أنواعها.

لمزيد من المعلومات عن التعامل مع الأخطاء يمكنك أن تقوم بزيارة صفحة "الأخطاء في PHP في موسوعة حسوب

طريقة أخرى لإيقاف ظهور رسائل الخطأ هي من خلال الملف htaccess.

php_flag display_errors off

أضافة الكود السابق إلى الملف htaccess. سوف تقوم بإيقاف كل رسائل الخطأ في المشروع الخاص بك.
تستطيع كذلك التعديل في ملف php.ini وإضافة هذا السطر:

display_errors = Off

سوف يقوم هذا الأمر بإيقاف كل الأخطاء في PHP وفي اي مشروع آخر تعمل عليه، لا يُفضل أن تستعمل هذه الطريقة لأنها يمكن أن تسبب لك مشاكل في حل الأخطاء في المستقبل في مشاريع أخرى.

  • 1
نشر

يمكن تحديد مستوى رسائل التحذير والأخطاء والملاحظات التي يمكن إظهارها من قبل PHP باستخدام التابع error_reporting ونمرر قيم مستويات الرسائل المراد إظهارها فقط، في حالتك نمرر فقط القيمة E_ERROR والتي تعني مستوى رسائل الخطأ فقط، نضيف السطر التالي لأعلى ملف PHP :

error_reporting(E_ERROR); // إظهار رسائل الخطأ فقط

 يمكن الاستفادة من قراءة المقال التالي:

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...