Ответ 1
exit();
Будет ли это завершение только child.php или parent.php?
Он завершит весь script.
Если вы не хотите этого делать, но вернитесь к включению script, вы можете return
изнутри include.
В 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?
exit();
Будет ли это завершение только child.php или parent.php?
Он завершит весь script.
Если вы не хотите этого делать, но вернитесь к включению script, вы можете return
изнутри include.
Вы ищете return
; команда. Это прекратит выполнение только child.php, и после этого будет обработано parent.php.
Кто-нибудь знает, возможно ли завершите родительский PHP script из в пределах включенного/требуемого script?
Вы можете использовать
die();
чтобы закончить выполнение любого script в любой точке. Использование Die также ставит конец родительским скриптам.
die("End");
Вывести "конец".
Фактически строка exit;
в вашем child.php
завершит текущий процесс php, который означает, что parent.php
будет успешно завершен.
Вы также можете прервать script, выбросив исключение и поймав его в одном из родительских скриптов.
Таким образом, вы можете контролировать с прецессией, какие сценарии заканчиваются и где продолжать в стеке файлов "include/require".
die
и exit
оба будут без каких-либо предубеждений. Это команда уровня приложения, которая (насколько мне известно) не может быть обнаружена или отменена.
Использование exit()
останавливает выполнение script и завершает его и всех родителей.
Вы можете попробовать создать исключение:
throw new Exception('An Error Ocurred');