Можно ли остановить включение php файла?

Можно ли остановить включение файла в середине файла?

Например, один файл будет содержать:

include('home.php');

и в home.php, он попытается отменить включение в какой-то момент:

break; // I tried it doesn't work
echo "this will not be output

Я не говорю о exit, который останавливает все, даже корневой файл. Я просто хочу, чтобы текущий файл был удален из.

Ответы

Ответ 1

Вместо break используйте return:

return

При вызове из глобальной области действия завершается выполнение текущего файла script. Если текущий script файл был include() ed или require() ed, тогда управление передается обратно в вызывающий файл.

Ответ 2

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

Если вы хотите иметь другой поток выполнения этого кода, вам нужно будет использовать некоторые из структур управления.

http://php.net/manual/en/language.control-structures.php

Ответ 3

Что вы можете сделать, это установить флаг в "родительский" script, который ищет включенный script. Если он установлен, он прекратит выполнение раньше, иначе он будет продолжаться как обычно.

Пример:

main.php

<?php
$_GLOBAL['is_included'] = true;
include('somefile.php');
// More stuff here
?>

somefile.php

<?php
// Does some stuff

// Stops here if being include()'d by another script
if ( isset($_GLOBAL['is_included']) ) { return; }

// Do some more stuff if not include()'d
?>