Причины, по которым PHP будет эхо-ошибки, даже с error_reporting (0)?

Каковы некоторые причины, по которым php заставит ошибки показывать, независимо от того, что вы говорите, чтобы отключить его?

Я пробовал

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

без везения.

Ответы

Ответ 1

Обратите внимание на оговорку в руководстве по http://uk.php.net/error_reporting:

Большинство ошибок E_STRICT оцениваются во время компиляции, поэтому такие ошибки не сообщаются в файле, где error_reporting улучшается, чтобы включать ошибки E_STRICT (и наоборот).

Если ваша базовая система настроена на сообщение об ошибках E_STRICT, они могут выводиться до того, как ваш код будет рассмотрен даже. Не забывайте, что error_reporting/ini_set - это оценки времени выполнения, и все, что выполняется на этапе "перед запуском", не увидит их эффектов.


На основе вашего комментария, что ваша ошибка...

Ошибка анализа: синтаксическая ошибка, неожиданный T_VARIABLE, ожидающий ',' или ';' в /usr/home/REDACTED/public _html/dev.php в строке 11

Тогда применяется то же общее понятие. Ваш код никогда не запускается, поскольку он синтаксически недействителен (вы забыли ";" ). Поэтому ваша смена отчетов об ошибках никогда не встречается.

Для этого требуется изменение отчета об ошибках системного уровня. Например, на Apache вы можете разместить...

php_value error_reporting 0

в файле .htaccess, чтобы подавить их все, но это зависит от конфигурации системы.

Прагматически не записывайте файлы с синтаксическими ошибками:)

Ответ 2

Чтобы предотвратить появление ошибок, вы можете

  • Запись в .htaccess: php_flag display_errors 0
  • Разделите свой кода в отдельных модулях, где Основной (родительский) php файл устанавливает только error_logging, а затем включить() другие файлы.

Ответ 3

используйте phpinfo, чтобы найти загруженный php.ini и отредактировать его, чтобы скрыть ошибки. он переопределяет то, что вы положили в свой script.

Ответ 4

Используется ли set_error_handler() в любом месте вашего script? Это переопределяет error_reporting (0)

Ответ 5

Используйте log_errors для их регистрации вместо отображаемых

Ответ 6

Если параметр указан в Apache, используя php_admin_value, он не может быть изменен в .htaccess или во время выполнения. См.: http://docs.php.net/configuration.changes

Ответ 7

Прагматически не записывайте файлы с синтаксическими ошибками:)

Чтобы убедиться в отсутствии синтаксических ошибок в вашем файле, выполните следующие действия:

php -l YOUR_FILE_HERE.php

Это выведет что-то вроде этого:

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

Надеюсь, что это поможет.

Ответ 8

Просто добавьте код ниже в файл index.php:

ini_set ('display_errors', False)