Во-первых, если вы используете require
, оно всегда убьет ваше приложение, если файл не может быть включен. Там нет контроля над результатом, вы не можете ничего сделать потом. Если вы хотите контролировать успешность включений файлов, используйте include
и проверьте его возвращаемое значение.
$success = include "foo.php";
if (!$success) {
// the file could not be included, oh noes!
}
Вы можете иметь синтаксические различия по этому поводу:
if (!(include "foo.php")) ...
будет вызывать E_NOTICE
, если файл не может быть включен, который вы не можете перехватить. Но это нормально, так как это поможет вам отладить проблему, и отображение ошибок в любом случае будет отключено в рабочей среде (справа, вправо ?).
or throw new Exception
не работает, потому что throw
является оператором и не может использоваться там, где ожидается выражение.
Если вы хотите перехватить синтаксические ошибки в файле , включенном в , используйте php_check_syntax
/ его преемник php -l <file>
.