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

Пропустить оставшуюся часть (включенного) файла в PHP

Я включаю файл inner.php в outer.php, у меня есть условие в inner.php, на котором я хочу прекратить выполнение inner.php, но НЕ весь script, то есть я хочу перейти к первому line в outer.php после включения inner.php, и я не хочу обертывать весь код в inner.php в инструкции if.

Есть ли способ сделать это в противном случае?

4b9b3361

Ответ 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