来自包含页面的PHP die()不会从主页面死亡

时间:2012-03-24 16:46:50

标签: php

有没有办法使用die()函数停止在另一个页面上包含的页面上执行PHP语句,但是在包含die()的文件的页面上继续执行PHP语句功能被包括在内?

3 个答案:

答案 0 :(得分:9)

在您附带的文件中使用return;。它会阻止这包括执行。它就像一个功能。您也可以从包含的文件中返回一个值

答案 1 :(得分:9)

没有。 dieexit的别名,可立即停止所有脚本执行。

但您可以使用return代替,这完全符合您的要求:

  

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

正如PHP docs的摘录中所述,您甚至可以使用它从包含中返回退出代码/返回值:

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

答案 2 :(得分:0)

没有。您可以改用try块吗?

  try
  {
    include $file;
  }

  catch (Exception $e)
  {
    // Whatever
  }

如果您在die()中使用$file,则会抛出异常。