PHP从包含页死亡(),而不从主页面死亡


PHP die() from included page without dying from main page

是否有一种方法可以使用die()函数停止在另一个页面上包含的页面上执行PHP语句,但在包含die()函数的文件的页面上继续执行PHP语句?

在包含的文件中使用return;。它将停止此包含执行。它就像一个函数。此外,您还可以从包含的文件中返回一个值

否。die是立即停止所有脚本执行的exit的别名。

但您可以使用return,它正是您想要的:

如果从全局范围调用,则结束当前脚本文件的执行。如果当前脚本文件是include()ed或require()ed,则控制权将传递回调用文件。此外,如果当前脚本文件是include()ed,那么给return()的值将作为include()调用的值返回。如果从主脚本文件中调用return(),则脚本执行结束。

正如PHP文档摘录中所述,您甚至可以使用它从include:中返回退出代码/返回值

$include_retval = include('file_like_function.php');
if ($include_retval) {
    die("include returned error code: " . $include_retval);
}

否。您可以使用try块吗?

  try
  {
    include $file;
  }
  catch (Exception $e)
  {
    // Whatever
  }

$file中使用die()时抛出一个异常。