Как остановить выполнение кода PHP?

Есть ли способ немедленно остановить выполнение кода PHP?

Я знаю о выходе, но в нем четко говорится:

Завершает выполнение скрипта. Функции выключения и деструкторы объектов всегда будут выполняться, даже если вызывается exit.

Так что я хочу добиться, чтобы остановить выполнение кода PHP точно, когда я вызываю выход или что-то еще.

Любая помощь?

Редактировать: после ответа Дженсона

Испытание 1:

function newExit() { __halt_compiler(); } echo "start"; newExit(); echo "you should not see this"; 

Показывает Fatal error: __HALT_COMPILER() can only be used from the outermost scope in которой было довольно ожидаемо.

Испытание 2:

 function newExit() { include 'e.php'; } echo "start"; newExit(); echo "you should not see this"; 

e.php просто содержит __halt_compiler();

Это показывает, что вы не должны видеть это

Изменить: Почему я хочу это сделать?

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

Я хочу сделать это, чтобы отключить этот журнал для определенных условий на основе (удаленного IP)

Пожалуйста, ознакомьтесь с приведенной ниже информацией от пользователя Pekka 웃

Согласно руководству деструкторы выполняются, даже если сценарий заканчивается с помощью функции die() или exit() :

Деструктор будет вызываться, даже если выполнение сценария прекращается с помощью функции exit() . Вызов exit () в деструкторе предотвратит выполнение остальных процедур выключения.

Согласно этому PHP: destructor vs register_shutdown_function , деструктор не выполняется, когда достигается время выполнения PHP (подтверждено на Apache 2, PHP 5.2 в Windows 7).

Деструктор также не выполняется, когда скрипт завершается, потому что достигнут предел памяти. (Только что протестировано)

Деструктор запускается на фатальных ошибках (только что протестировано). Обновление: OP не может подтвердить это. Кажется, это фатальные ошибки, когда все по-другому

Он не выполняется на ошибках разбора (потому что весь скрипт не будет интерпретироваться)

Деструктор, конечно же, не будет выполнен, если произойдет сбой сервера или какое-либо другое исключение из управления PHP.

Ссылка на этот вопрос Есть ли случаи, когда деструктор в PHP НЕ вызывается?

Помимо очевидных die() и exit() , это также работает:

 <?php echo "start"; __halt_compiler(); echo "you should not see this"; ?> 

Вы можете использовать функцию __halt_compiler которая остановит выполнение компилятора

http://www.php.net/manual/en/function.halt-compiler.php

Вы можете попытаться убить процесс PHP:

 exec('kill -9 ' . getmypid()); 

Я не уверен, что вы понимаете, что означает «выход»

 Terminates execution of the script. Shutdown functions and object destructors will always be executed even if exit is called. 

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

или попробуйте

 trigger_error('Die', E_ERROR);