Причины, по которым PHP будет воспроизводить ошибки, даже с отчетами об ошибках(0)?
Каковы некоторые причины, по которым php будет показывать ошибки, независимо от того, что вы ему скажете отключить?
Я пытался
error_reporting(0);
ini_set('display_errors',0);
Безрезультатно.
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, чтобы подавить их все, но это зависит от конфигурации системы.
Прагматично, не пишите файлы с синтаксическими ошибками:)
Чтобы предотвратить отображение ошибок, вы можете
- Запишите в .htaccess: php_flag отображение_ошибок 0
- Разделите свой код на отдельные модули, в которых основной (родительский) php-файл только устанавливает значение error_logging, а затем включает() другие файлы.
Используйте phpinfo, чтобы найти загруженный php.ini и отредактировать его, чтобы скрыть ошибки. это переопределяет то, что вы вложили в свой сценарий.
Используется ли set_error_handler()
где-нибудь в вашем скрипте? Это переопределяет сообщение об ошибке(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('ошибки отображения', Ложь);