2 записи в php.ini диктуют вывод ошибок:
В процессе производства display_errors
обычно устанавливается на Off
(что хорошо, потому что отображение ошибок на производственных площадках обычно нежелательно!).
Однако в разработке он должен быть установлен на On
, чтобы отображались ошибки. Check!
error_reporting
(начиная с PHP 5.3) устанавливается по умолчанию на E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
(что означает, что все отображается за исключением уведомлений, строгих стандартов и уведомлений об отказе). Если вы сомневаетесь, установите его на E_ALL
, чтобы отобразить все ошибки. Проверьте!
Это позор. Обычно общие хосты не позволяют изменять файл php.ini, и поэтому этот параметр, к сожалению, недоступен. Но не бойся! У нас есть другие возможности!
В желаемом скрипте мы можем изменить записи php.ini во время выполнения! Значит, он будет запускаться при запуске скрипта! Sweet!
error_reporting(E_ALL);
ini_set("display_errors", "On");
Эти две строки будут делать тот же эффект, что и изменение записей php.ini, как указано выше!
Это означает, что сценарий даже не запускался! Это обычно происходит, когда у вас есть синтаксическая ошибка!
С синтаксическими ошибками скрипт даже не доходит до времени выполнения. Он не работает во время компиляции, то есть он будет использовать значения в php.ini, которые, если вы не изменились, могут не разрешать отображение ошибок.
Кроме того, PHP по умолчанию регистрирует ошибки. На общем хостинге это может быть в выделенной папке или в той же папке, что и скрипт-нарушитель.
Если у вас есть доступ к php.ini, вы можете найти его под error_log
.