Ну, во-первых, я надеюсь, что $code
исходит из надежного источника и вы выполняете произвольный код, отправленный пользователями.
Во-вторых, единственный способ увидеть, как вы можете обойти это, - сохранить $code
в файл, запустить его с помощью интерпретатора PHP командной строки и проверить значение выхода. Обратите внимание, что прохождение этого теста не освобождает $code
фатальную ошибку, просто так получилось, что это конкретное выполнение скрипта не выдало фатальной ошибки; могут быть другие пути кода, которые вызывают такую ошибку.
Это потому, что как только eval
вызывает фатальную ошибку, она не может быть восстановлена и сценарий умирает. eval
возвращает FALSE
только в случае ошибки синтаксического анализа.