内容不会死亡

时间:2010-04-01 19:26:06

标签: php exit

我有一个函数,如果没有定义变量,则调用exit;,因此它不应该在页面上产生任何东西,而是一个空白页面。它会在实际退出之前生成错误消息。所以当它应该执行时,因为变量没有定义,它应该死掉,但是会发生错误消息,然后页面的其余部分加载错误消息,并且不会退出。任何想法?

public function exit_error() {
    parent::error_array();
    $errors = $this->msg_array;
    return $errors;
    die(); // error should produce, then die here.
}

4 个答案:

答案 0 :(得分:1)

在代码到达exit之前,您将从函数返回。这就是return的作用。忽略return语句之后的所有内容,并且执行流程返回到您调用函数的位置。

详细了解退货和计划流程here。这是一个基本概念,理解它是至关重要的,如果你希望写出最简单的程序。

答案 1 :(得分:0)

这一行:

return $errors;

函数退出并将结果返回给调用者 return语句之后的所有内容都永远不会被执行!

您可以考虑让return让函数说出来:“在这里,我在这里完成了!”


因此,可以在函数中包含多个返回语句,例如:

function($i) {
   if($i > 0) {
       return 'foo';
   }
   $i = -$i;
   return 'bar';
}

该函数是无意义的,关键是如果$i大于0,则达到语句return 'foo',函数存在 never 执行以下行。

通过这种方式,您可以提前离开某个函数,而无需进行可能不需要的进一步计算。

答案 2 :(得分:0)

使用return,您基本上退出了您的功能。任何后续语句都将被忽略,包括die()

哦,保存一只独角兽并使用exit()代替;)。 (这是一个笑话,die()相当于PHP中的exit()

答案 3 :(得分:0)

该函数返回变量$errors,然后不再执行函数中的代码。

    public function exit_error() {
        parent::error_array();
        $errors = $this->msg_array;
        return $errors;
        echo "hello";
        die();
    }

因为函数已停止执行,所以永远不会打印Hello。