Я некоторое время боролся с этим (студенты изучают PHP в некоторых из моих классов), потому что я пытался использовать
ini_set('display_errors', 1);
как предложено (например, PHPv6 и MySQL 5 от Ullman), но размещение его в вашем коде не перехватывало ошибок синтаксического анализа. Вместо этого я продолжал видеть пустые страницы.
A комментарий на веб-страницах руководства по PHP дал мне понять, почему установка
display_errors = On
в php.ini - это не то же самое, что добавление
ini_set('display_errors', 1);
вверху вашего php-скрипта. Кажется, что PHP имеет двухфазную операцию и полностью анализирует файл сценария, прежде чем он начнет выполнять что-либо из этого. Если синтаксический анализ не выполняется из-за пропущенного ";" или ")", то
ini_set('display_errors', 1);
анализируется, но никогда не выполняется, поэтому ошибка синтаксического анализа не сообщается.
Тот же комментарий предлагает способ сообщить об ошибках разбора, если у вас нет средств для изменения настроек php.ini.