Пропустить оставшуюся часть (включенного) файла в PHP
Я включаю файл inner.php
в outer.php
, у меня есть условие в inner.php
, на котором я хочу прекратить выполнение inner.php
, но НЕ весь script, то есть я хочу перейти к первому line в outer.php
после включения inner.php
, и я не хочу обертывать весь код в inner.php
в инструкции if.
Есть ли способ сделать это в противном случае?
Ответы
Ответ 1
Просто return;
или return($value);
на верхнем уровне файла inner.php
.
Если вызывается из глобальной области, то выполнение текущего файла scriptЯ отправил. Если текущий файл scriptбыл include()ed
или require()ed
, тогда управление передается обратно вызывающему файл. Кроме того, если текущий Файл script был include()ed
, затем значение, данное return()
, будет возвращается как значение include()
звоните.
Ответ 2
Вы можете просто вызвать return
в свой файл include, но если вам нужно это сделать, это говорит о том, что с вашей архитектурой что-то не так. Например, рассмотрим этот файл include:
<?php
// include.php
echo "This is my include";
return;
echo "This is after the include";
.., включенном на следующую страницу:
<?php
// index.php
include('include.php');
Вы получите: This is my include
.
Ответ 3
Как насчет наличия двух файлов для внутреннего. Первая и вторая части и место второго условия включают?
Ответ 4
Выбросьте исключение в том месте, где вы хотите остановить
// in inner.php:
// ...some code...
throw new Exception('Error description');
// ...some code which will not always execute...
и поймать его в файле, где вы хотите возобновить
// in outer.php
try {
include 'inner.php';
} catch (Exception $e) {
//TODO: add error handling here
}
UPDATE
В отличие от использования return;
, как предлагают другие ответы, использование исключений будет прерываться в любом месте, даже если вы находитесь в некоторой функции внутри inner.php