PHP包含脚本中的exit(),退出父脚本?

时间:2011-06-13 17:38:58

标签: php include exit

在PHP中,如果我使用include()或require()函数开始在另一个脚本中运行代码,有没有办法从子内部终止父脚本?

所以说我在parent.php中有这个:
require('child.php');

这是在child.php中: exit();

是否会终止child.php或parent.php? 有没有办法从child.php中终止parent.php,而不向parent.php添加任何进一步的代码?

这是PHP中一个精心设计的自定义404错误页面,它检测Apache是​​否使用ErrorDocument调用它,或者用户是否从我们的自定义CMS请求了一个不存在的页面。如果是后者,那么我想要求我的404.php(子)和输出,而不是继续执行父。

任何人都知道是否可以从包含/必需的脚本中终止父PHP脚本?

9 个答案:

答案 0 :(得分:53)

  

exit();   那会终止child.php,还是parent.php?

它将终止整个脚本。

如果您不想这样做,但返回包含脚本,则可以从包含内return

答案 1 :(得分:14)

您正在寻找return;命令。这将终止只执行child.php,之后将处理parent.php。

答案 2 :(得分:3)

  

任何人都知道是否有可能   从中终止父PHP脚本   在包含/必需的脚本中?

您可以使用

die();

在任何时候结束任何脚本的执行。使用Die也会结束父脚本。

die("End");

将输出“结束”。

答案 3 :(得分:1)

dieexit都会在没有偏见的情况下终止。它是一个无法捕获或撤消的应用程序级别命令。

答案 4 :(得分:1)

实际上exit;中的child.php行将终止当前的php流程,这意味着parent.php将被终止。

答案 5 :(得分:1)

您还可以通过抛出异常并在其中一个父脚本中捕获它来终止脚本。

通过这种方式,您可以通过精确控制哪些脚本终止以及在“include / require”文件堆栈中继续运行的位置。

答案 6 :(得分:0)

使用exit()将停止脚本执行并终止子项和所有父项。

答案 7 :(得分:0)

您可以尝试抛出异常:

throw new Exception('An Error Ocurred');

答案 8 :(得分:0)

如果需要存在包含的文件但可以从主脚本继续,则可以使用 return

返回

(PHP 4,PHP 5,PHP 7)

return 将程序控制返回给调用模块。执行在被调用模块调用之后的表达式处恢复。

如果从函数内部调用,则returnstatement立即结​​束当前函数的执行,并将其自变量作为函数调用的值返回。 return也将结束eval()语句或脚本文件的执行。

如果从全局范围调用,则当前脚本文件的执行结束。如果当前脚本文件已包含或需要,则控制权将传递回调用文件。此外,如果当前脚本文件已包括在内,则返回的值将作为include调用的值返回。如果从主脚本文件中调用return,则脚本执行结束。如果当前脚本文件由php.ini中的auto_prepend_file或auto_append_fileconfiguration选项命名,则该脚本文件的执行结束