我有一个函数,如果没有定义变量,则调用exit;
,因此它不应该在页面上产生任何东西,而是一个空白页面。它会在实际退出之前生成错误消息。所以当它应该执行时,因为变量没有定义,它应该死掉,但是会发生错误消息,然后页面的其余部分加载错误消息,并且不会退出。任何想法?
public function exit_error() {
parent::error_array();
$errors = $this->msg_array;
return $errors;
die(); // error should produce, then die here.
}
答案 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。