ما هي أسباب تكرار الأخطاء في PHP، حتى مع وجود error_reporting(0)؟

StackOverflow https://stackoverflow.com/questions/78296

  •  09-06-2019
  •  | 
  •  

سؤال

ما هي بعض الأسباب التي تجعل PHP تجبر الأخطاء على الظهور، بغض النظر عما تطلبه من تعطيله؟

لقد حاولت

error_reporting(0);
ini_set('display_errors', 0); 

بدون حظ.

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

المحلول

لاحظ التحذير في الدليل في http://uk.php.net/error_reporting:

يتم تقييم معظم أخطاء E_STRICT في وقت الترجمة وبالتالي لا يتم الإبلاغ عن هذه الأخطاء في الملف حيث يتم تحسين تقرير الخطأ ليشمل أخطاء E_STRICT (والعكس صحيح).

إذا تم تكوين نظامك الأساسي للإبلاغ عن أخطاء E_STRICT، فقد يتم إخراجها قبل أن يتم أخذ التعليمات البرمجية الخاصة بك في الاعتبار.لا تنس أن error_reporting/ini_set هي تقييمات وقت التشغيل، وأي شيء يتم إجراؤه في مرحلة "ما قبل التشغيل" لن يكون له تأثيره.


بناء على تعليقك بأن خطأك هو...

خطأ تحليلي:خطأ في بناء الجملة ، T_Variable غير المتوقع ، المتوقع "، أو" ؛ ؛ "؛ in /usr/home/redacted/public_html/dev.php على السطر 11

ثم ينطبق نفس المفهوم العام.لن يتم تشغيل التعليمات البرمجية الخاصة بك مطلقًا، لأنها غير صالحة من الناحية النحوية (لقد نسيت '؛').ولذلك، لم يتم مصادفة التغيير في تقرير الخطأ.

يتطلب إصلاح ذلك تغيير الإبلاغ عن الأخطاء على مستوى النظام.على سبيل المثال، في Apache قد تتمكن من وضع...

php_value error_reporting 0

في ملف .htaccess لمنعهم جميعًا، ولكن هذا يعتمد على تكوين النظام.

عمليًا، لا تكتب ملفات بها أخطاء في بناء الجملة :)

نصائح أخرى

لمنع ظهور الأخطاء يمكنك ذلك

  • اكتب في .htaccess: php_flag أخطاء العرض 0
  • قم بتقسيم التعليمات البرمجية الخاصة بك في وحدات منفصلة حيث يقوم ملف PHP الرئيسي (الأصل) فقط بتعيين Error_logging ثم قم بتضمين () الملفات الأخرى.

يستخدم phpinfo للعثور على ملف php.ini الذي تم تحميله وتحريره لإخفاء الأخطاء.إنه يتجاوز ما تضعه في البرنامج النصي الخاص بك.

يكون set_error_handler() تستخدم في أي مكان في البرنامج النصي الخاص بك؟هذا يتجاوز error_reporting(0).

استخدم log_errors ليتم تسجيلها بدلاً من عرضها

إذا تم تحديد الإعداد في Apache باستخدام php_admin_value، فلا يمكن تغييره في .htaccess أو في وقت التشغيل.يرى: http://docs.php.net/configuration.changes

عمليًا، لا تكتب ملفات بها أخطاء في بناء الجملة :)

للتأكد من عدم وجود أخطاء في بناء الجملة في ملفك، قم بتشغيل ما يلي:

php -l YOUR_FILE_HERE.php

سيؤدي هذا إلى إخراج شيء مثل هذا:

PHP Parse error:  syntax error, unexpected '}' in Connection.class.php on line 31

فقط قم بإضافة الكود أدناه في ملفك Index.php ملف:

ini_set('display_errors', False);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top