سؤال

ها هو رمزتي:

echo 'foo';

error_reporting(E_ALL);

echo 'this line doesnt end in a semi colon'

echo 'i should get an error here';

عندما أقوم بتشغيل هذا ، لا أحصل على خطأ.

لست متأكدا كيف يمكن أن يكون هذا؟

هل كانت مفيدة؟

المحلول

ini_set('display_errors', 1);

لاحظ أنه إذا قمت بذلك في الملف الذي يحتوي على خطأ بناء الجملة ، فلن يعمل ، لأنه لن يتم تنفيذه أبدًا. يمكنك أيضًا تعيين هذا صحيح في php.ini (غير مستحسن لخوادم الإنتاج) ، أو إذا كنت تستخدم Apache ، في .htaccess مع:

php_flag display_errors 1

نصائح أخرى

Error_Reporting Directive لن يساعدك في إظهار رسائل الخطأ على الشاشة. انها مسؤولة عن أيّ خطأ في العرض ، لا أين.

إذا تم تشغيل PHP الخاص بك كوحدة Apache (على الأرجح يفعل ذلك) أضف السطر التالي إلى .htaccess ملف:

php_value display_errors 1

عند التبديل إلى الإنتاج ، قم بتغييره إلى

php_value display_errors 0
php_value log_errors 1

ومشاهدتها في سجل الخطأ.

هل لديك أي نوع من السنانير الإغلاق أو وظائف التعامل مع الأخطاء أو صيادين الاستثناء العالمي؟

يمكن أن تكون أخطاء بناء الجملة غريبة في أطر عمل كبيرة :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top