是否可以停止包含php文件?

时间:2011-12-08 19:29:02

标签: php include

是否可以停止在文件中间包含文件?

例如,一个文件将包含:

include('home.php');

并且在home.php中,它会尝试在某个时候取消包含:

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

我不是在谈论exit,它会阻止所有内容,甚至是根文件。我只想退出当前文件。

3 个答案:

答案 0 :(得分:30)

代替break,使用return

  

return

     

如果从全局范围调用,则结束当前脚本文件的执行。如果当前脚本文件为include()require(),则控制权将传递回调用文件。

答案 1 :(得分:5)

没有。当您包含或要求时。该文件被完全加载和解析。这并不意味着它中的代码被执行,而是完全加载

如果你想拥有不同的代码执行流程,那么你需要使用一些控制结构。

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

答案 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
?>