是否可以停止在文件中间包含文件?
例如,一个文件将包含:
include('home.php');
并且在home.php
中,它会尝试在某个时候取消包含:
break; // I tried it doesn't work
echo "this will not be output
我不是在谈论exit
,它会阻止所有内容,甚至是根文件。我只想退出当前文件。
答案 0 :(得分:30)
答案 1 :(得分:5)
没有。当您包含或要求时。该文件被完全加载和解析。这并不意味着它中的代码被执行,而是完全加载。
如果你想拥有不同的代码执行流程,那么你需要使用一些控制结构。
答案 2 :(得分:4)
您可以做的是在包含脚本查找的“父”脚本中设置一个标志。如果它已经设置,它将提前停止执行,否则它将继续正常。
示例:
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
?>