2010-09-30 3 views
3

Вот мой код:PHP не будет показывать ошибки

echo 'foo'; 

error_reporting(E_ALL); 

echo 'this line doesnt end in a semi colon' 

echo 'i should get an error here'; 

Когда я запускаю это я не получаю сообщение об ошибке.

Не знаете, как это может быть?

+1

Я единственный человек, который предпочитает только «tail -f» журнал ошибок? :-) – prodigitalson

+2

@prodigitalson зависит от состояния сайта. for developnemt Я предпочитаю на экране –

+0

'Я не получаю ошибки. 'означает' я получаю все 3 строки напечатаны' или 'я получаю пустой экран'? –

ответ

12
ini_set('display_errors', 1); 

Обратите внимание, что если вы сделаете это в файле с синтаксической ошибкой, он не будет работать, поскольку он никогда не будет выполнен. Вы также можете установить это верно в php.ini (не рекомендуется для производственных серверов), или если вы используете Apache, в .htaccess с:

php_flag display_errors 1 
+0

так что php_flag display_errors 1 должен показывать все ошибки всегда? (причина не в моем случае) –

+0

Нет, это только говорит о том, что ошибки отображаются вообще. Значение конфигурации 'error_reporting' определяет, какие ошибки отображаются. –

0

Есть ли у вас какое-либо отключение крючков, функция обработки ошибок или работают глобальные ловушки исключения?

синтаксические ошибки могут быть изворотливым в больших рамках :)

2

директива error_reporting не поможет, чтобы сообщения об ошибках на экране. Он отвечает за , который ошибка, чтобы показать, а не где.

если ваш PHP работает как модуль Apache (скорее всего, это делает) добавить следующую строку в .htaccess файл:

php_value display_errors 1 

при переходе на производство, изменить его на

php_value display_errors 0 
php_value log_errors 1 

и часы их в журнале ошибок.

Смежные вопросы