Заставить PHP выполнить include, даже если в скрипте позже будет ошибка

Я пытаюсь создать систему, в которой, добавив одно включение, я могу настроить PHP на отображение ошибок (файл php.ini предотвращает это). Другими словами:

<?php
    include "showerrors.php";
    // Produce Error
    ERROR;
?>

Это создаст ошибку синтаксического анализа, и "showerrors.php" не будет выполнен, что означает, что ошибка никогда не будет показана. Однако, если "showerrors.php" действительно выполняется, ошибка будет показана.

3 ответа

Решение

Если у вас есть ошибка синтаксического анализа, то есть неверный синтаксис, то никакой код в файле не будет выполнен, потому что файл не может быть проанализирован. Это включает include заявления. Все так просто, никак не обойтись. Нетрудно убедиться, что ваш файл имеет по крайней мере правильный синтаксис, такие инструменты интегрированы в большинство редакторов и IDE.

Вы должны сделать с точностью до наоборот - в showerrors.php включите отчеты об ошибках и включите запрошенный файл (вы можете перенаправить все запросы в showerrors.php через mod_rewrite / whatsever, поддерживаемый сервером, а затем включить запрошенный файл)

Если есть ошибка разбора, PHP не может быть выполнен. Запрос о том, можете ли вы заставить PHP продолжать выполнение после ошибки, все равно что спросить, можете ли вы заставить автомобиль завестись, даже если двигатель работает - это просто не может произойти.

Другие вопросы по тегам