Как определить, что PHP-скрипт находится в фазе завершения?

Есть ли какая-либо функция / глобальная переменная в PHP, которая возвращает текущее состояние скрипта (что-то вроде runnning, terminating)?

Или это единственный способ установить это состояние, используя register_shutdown_function() ?

Эта функция выглядит негибкой для меня, поскольку уже зарегистрированные функции выключения могут быть переопределены. И функция shutdown выполняется, когда пользователь прерывает соединение , и это не то, что я ищу явно, и я не хочу вводить слишком много ограничений.

Существуют ли какие-либо альтернативы register_shutdown_function() ? Или, если нет, как бороться с недостатками этой функции?

ОБНОВИТЬ

Просто уточнить: я не ищу состояние соединения (например, connection_aborted() ), но для состояния выполнения PHP-скрипта (работает, завершается). Функции, чтобы узнать больше о состоянии подключения, о котором я уже знаю, но как насчет текущего состояния скрипта? Из-за этого скрипт уже был прерван и объекты (будут уничтожены)?

UPDATE2

Чтобы уточнить еще больше, я все еще не ищу состояние соединения, но что-то сопоставимое относительно состояния выполнения. Он также должен работать в CLI, который не имеет никакого состояния соединения, поскольку TCP-соединение не связано с выполнением кода – чтобы лучше проиллюстрировать то, что я ищу.

    Прочитав большую часть исходного кода PHP, я пришел к выводу, что даже если такие состояния существуют на уровне опыта, они действительно не существуют в интерпретаторе в виде флага или переменной.

    Код о бросании Исключения, например, решает разные переменные, если это возможно или нет.

    Таким образом, ответ на вопрос нет.

    Лучшим обходным решением, которое я смог найти до сих пор, является глобальная переменная для этого, установленная в зарегистрированной функции выключения. Но флаг с PHP, похоже, действительно недоступен.

     <?php register_shutdown_function(function() {$GLOBALS['shutdown_flag']=1;}); class Test { public function __destruct() { isset($GLOBALS['shutdown_flag']) && var_dump($GLOBALS['shutdown_flag']) ; } } $test = new Test; #EOF; Script ends here. 

    Ты ищешь:

     Connection_aborted(); 

    http://it.php.net/manual/en/function.connection-aborted.php

    или

     Connection_status(); 

    http://it.php.net/manual/en/function.connection-status.php

    добавление

    Не может быть никакого статуса Terminated, поскольку, если он завершен, вы не можете проверить его статус lol

    Я еще никогда не использовал (практическое) его использование, но вы могли бы использовать:

    http://www.php.net/manual/en/function.register-tick-function.php

    Используя это означает, что вы можете записать файл или обновить db или что-то во время работы скрипта … т.е. записать сеанс записи / некоторый идентификатор и идентификатор timestamp в файл или что-то еще и проверить время между исполнением, возможно, вы могли бы сказать, если он не обновляется за X секунд, он все еще работает.

    Но, как указано, PHP является апатридом, поэтому не следует понимать, что PHP будет знать.

    В противном случае вы могли бы установить поле БД каким-то образом, когда скрипт запускается / перед тем, как он «кончится», но на самом деле наложит много накладных расходов.

    Есть ли какая-либо функция / глобальная переменная в PHP, которая возвращает текущее состояние скрипта (что-то вроде runnning, terminating)?

    Нет, PHP не имеет гражданства.