我包括文件inner.php
outer.php
,我有一个条件inner.php
我想停止执行inner.php
但不是整个脚本,即我想跳转到在包含inner.php
之后的第一行outer.php
中,我不想将所有inner.php
中的代码包含在if语句中。跳过PHP(其中包含的)文件的其余部分
有没有办法做到这一点,否则呢?
我包括文件inner.php
outer.php
,我有一个条件inner.php
我想停止执行inner.php
但不是整个脚本,即我想跳转到在包含inner.php
之后的第一行outer.php
中,我不想将所有inner.php
中的代码包含在if语句中。跳过PHP(其中包含的)文件的其余部分
有没有办法做到这一点,否则呢?
只要在inner.php
文件的顶层执行return;
或return($value);
即可。
如果从全局范围调用,然后 当前脚本文件 的执行结束。如果当前脚本文件 是
include()ed
或require()ed
,则将 控件传回给调用的 文件。此外,如果当前的 脚本文件是include()ed
,那么给予return()
的 值将为 ,作为include()
调用的值返回。
您可以在您的包含文件中调用return
,但是如果您必须这样做,那么它表明您的架构有问题。例如,考虑这个包含文件:
<?php
// include.php
echo "This is my include";
return;
echo "This is after the include";
..included下页:
<?php
// index.php
include('include.php');
你会得到的输出是:This is my include
。
我推荐使用require来停止你的页面执行,如果找不到include文件。我也同意,如果你想要这样做,你的架构可能有些问题。分割您的包含文件或在包含文件中进行条件测试。 – 3nixios 2011-05-26 09:24:02
如何有两个文件的内部。第一部分和第二部分将条件放在第二部分?
扔在那里要停止
// 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
摘取说明的彻底性,具体回答*我的问题 – MeLight 2011-05-26 10:39:01
太棒了!谢谢:-)回报真的帮了我 – Can 2015-05-21 05:07:35
+1,我从来没有意识到'require'或'include'可以有返回值。使用退货,我可以检查自动包含提供有效的类更好一点:D – 2015-08-25 09:38:29