Есть ли способ избежать выхода PHP из-за фатальной ошибки, если я использую функцию выключения? - PullRequest
0 голосов
/ 21 апреля 2020

Используя fopen() и fgets(), я создаю небольшую среду командной строки в PHP. Это предполагает возможность запуска команд, которые передаются на eval().

Хотя это прекрасно работает, если что-то вызывает ошибку, PHP завершится с сообщением о фатальной ошибке.

Я обнаружил, что могу перехватывать фатальные ошибки, используя register_shutdown_function(), но после функции называется, 1017 * выходит безжалостно. Тем не менее, я хочу, чтобы мой скрипт продолжал работать и отображал ошибку пользователю, а затем разрешить / дождаться следующего ввода. Я знаю, как отобразить ошибку, но я не знаю, как предотвратить выход PHP.

Есть ли способ сохранить его работоспособным?

Примечание. Я рассмотрел вопрос об использовании Сценарий перезапускается сам, вызывая passthru() сам по себе, который работает, поскольку он просто перезапускает себя внутри себя для каждой возникающей ошибки, но это немного грязное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...