При реализации какого-то класса я столкнулся с небольшой проблемой:
Если скрипт заканчивается и вызываются деструкторы , потому что сценарий закончен, мне иногда нужно было вызвать ошибку.
Я думал, что функция trigger_error()
будет trigger_error()
. Однако, если error_reporting(-1)
инициированная ошибка больше не отправляется STDOUT или STDERR – пока ожидается, что это произойдет (например, если не в фазе __destructor / term сценария, trigger_error работает, как ожидалось).
Если я выхожу из сообщения, оно будет отправлено в STDOUT (режим CLI).
Я сейчас удивляюсь
Примечание. Я тестировал connection_status()
но в моем случае это бесполезно, поскольку речь идет только об обработке соединения и просто не связана. Интересно, есть ли какая-то функция, которая делает то же самое для статуса выполнения сценариев (запуск, запуск, выход).
Это пример очень небольшого примера для иллюстрации проблемы. Естественно, ошибка возникает только в том случае, если это имеет смысл для объекта:
<?php class TriggerTest { public function __destruct() { trigger_error('You should have missed something.'); } } $obj = new TriggerTest; exit();
Проблема в том, что trigger_error()
выполняется, но ошибка не появляется нигде.
Как насчет того, чтобы заставить отчет об ошибках быть определенным параметром, вызвать ошибку, а затем установить отчет об ошибках в его нормальную форму?
Ответ: Просто сделай это. У меня была некорректная конфигурация для обработчика ошибок, и поэтому она не работала. Моя вина.
Однако все же интересно, есть ли какая-либо функция или что-то подобное, чтобы определить состояние выполнения при выключении .