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


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

Я пытался

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

Безрезультатно.

Author: Code Lღver, 2008-09-17

8 answers

Обратите внимание на предостережение в руководстве по адресу 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_отчет 0

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

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

 15
Author: Adam Wright, 2008-09-16 23:41:08

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

  • Запишите в .htaccess: php_flag отображение_ошибок 0
  • Разделите свой код на отдельные модули, в которых основной (родительский) php-файл только устанавливает значение error_logging, а затем включает() другие файлы.
 3
Author: Willem, 2008-09-18 13:06:59

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

 1
Author: khalid, 2011-01-02 15:52:17

Используется ли set_error_handler() где-нибудь в вашем скрипте? Это переопределяет сообщение об ошибке(0)

 1
Author: colmde, 2013-06-10 08:34:37

Используйте log_errors, чтобы они регистрировались, а не отображались

 0
Author: Vinko Vrsalovic, 2008-09-16 23:33:46

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

 0
Author: troelskn, 2008-09-18 21:25:17

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

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

php -l YOUR_FILE_HERE.php

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

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

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

 0
Author: ob-ivan, 2015-12-07 15:50:45

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

Ini_set('ошибки отображения', Ложь);

 0
Author: dheerendra, 2017-12-16 10:16:58