Как получить ошибки PHP для отображения? - PullRequest
1574 голосов
/ 27 июня 2009

Я проверил мой файл инициализации PHP (php.ini) и установил ошибки отображения, а также отчет об ошибках E_ALL. Я перезапустил свой веб-сервер Apache.

Я даже поместил эти строки в начало моего скрипта, и он даже не ловит простые ошибки разбора. Например, я объявляю переменные с "$" и не закрываю операторы ";". Но все мои скрипты показывают пустую страницу с этими ошибками, но я действительно хочу видеть error в выводе моего браузера.

error_reporting(E_ALL);
ini_set('display_errors', 1);

Что осталось сделать?

Ответы [ 26 ]

4 голосов
/ 27 апреля 2017

Вот что я узнал. В файле PHP.INI

error_reporting = E_ALL
display_errors = On
4 голосов
/ 13 января 2017

Просто напишите:

error_reporting(-1);
4 голосов
/ 24 мая 2018
    <?php
    // Turn off error reporting
    error_reporting(0);

    // Report runtime errors
    error_reporting(E_ERROR | E_WARNING | E_PARSE);

    // Report all errors
    error_reporting(E_ALL);

    // Same as error_reporting(E_ALL);
    ini_set("error_reporting", E_ALL);

    // Report all errors except E_NOTICE
    error_reporting(E_ALL & ~E_NOTICE);
    ?>

Пока ваш сайт работает, файл php.ini должен иметь отключенные display_errors по соображениям безопасности. Однако для среды разработки display_errors можно включить для устранения неполадок.

3 голосов
/ 28 марта 2019

Возможно, вы захотите использовать этот код:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
3 голосов
/ 19 октября 2017

Если у вас установлен Xdebug , вы можете переопределить все настройки, установив:

xdebug.force_display_errors = 1;
xdebug.force_error_reporting = -1;

force_display_errors

Тип: int, Значение по умолчанию: 0, Введено в Xdebug> = 2.3 Если это значение 1, ошибки будут отображаться всегда, независимо от того, что такое настройка PHP display_errors.

force_error_reporting

Тип: int, Значение по умолчанию: 0, Введено в Xdebug> = 2.3 Этот параметр является битовой маской, такой как error_reporting. Эта битовая маска будет логически ИЛИ с битовой маской, представленной error_reporting, чтобы определить, какие ошибки должны отображаться. Этот параметр может быть установлен только в php.ini и позволяет принудительно отображать определенные ошибки независимо от того, что приложение делает с ini_set ().

2 голосов
/ 11 апреля 2019

Вы можете сделать это, изменив файл php.ini и добавив следующее

display_errors = on
display_startup_errors = on

ИЛИ вы также можете использовать следующий код, так как он всегда работает для меня

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
...