Подтвердить что ты не робот

Выход PHP() из включенного script, выход из родителя script?

В PHP, если я использую функции include() или require() для запуска запуска кода в другом script, существует ли способ завершить родительский script изнутри дочернего элемента?

Так сказать, у меня это есть в parent.php:
require('child.php');

И это в child.php:
exit();

Будет ли это завершение только child.php или parent.php?
Есть ли способ завершить parent.php из child.php, не добавляя никакого дополнительного кода в parent.php?

Это для сложной пользовательской страницы ошибок 404 на PHP, которая определяет, была ли она вызвана Apache с использованием ErrorDocument, или пользователь запросил страницу из нашей настраиваемой CMS, которая не существует. Если это последний, то я хочу просто потребовать свой 404.php(child) и вывести из него и не продолжать выполнять родительский.

Кто-нибудь знает, возможно ли завершить родительский PHP script из включенного/обязательного script?

4b9b3361

Ответ 1

exit();Будет ли это завершение только child.php или parent.php?

Он завершит весь script.

Если вы не хотите этого делать, но вернитесь к включению script, вы можете return изнутри include.

Ответ 2

Вы ищете return; команда. Это прекратит выполнение только child.php, и после этого будет обработано parent.php.

Ответ 3

Кто-нибудь знает, возможно ли завершите родительский PHP script из в пределах включенного/требуемого script?

Вы можете использовать

die();

чтобы закончить выполнение любого script в любой точке. Использование Die также ставит конец родительским скриптам.

die("End");

Вывести "конец".

Ответ 4

Фактически строка exit; в вашем child.php завершит текущий процесс php, который означает, что parent.php будет успешно завершен.

Ответ 5

Вы также можете прервать script, выбросив исключение и поймав его в одном из родительских скриптов.

Таким образом, вы можете контролировать с прецессией, какие сценарии заканчиваются и где продолжать в стеке файлов "include/require".

Ответ 6

die и exit оба будут без каких-либо предубеждений. Это команда уровня приложения, которая (насколько мне известно) не может быть обнаружена или отменена.

Ответ 7

Использование exit() останавливает выполнение script и завершает его и всех родителей.

Ответ 8

Вы можете попробовать создать исключение:

throw new Exception('An Error Ocurred');