我现在正在研究其他用户的 PHP 代码以更好地理解和学习。在下面的代码中,它是用户类的一部分。当我使用 if/else block 编写代码时,我将它们格式化为这样...
if(!$this->isLoggedIn()){
//do stuff
}
但在下面的代码中更像是这样
if (! $this->isLoggedIn())
return false;
同样在下面的函数中,您可以看到有几次可以有一个 RETURN 值。所以我的问题是,当 RETURN 被调用时,它之后不会运行任何代码吗?就像它在那里结束该功能的脚本一样吗?
在这种情况下,如果运行...
if (! $this->isLoggedIn())
return false;
它是否继续运行下面的代码?
这是函数
<?PHP
private function logout($redir=true)
{
if (! $this->isLoggedIn())
return false;
$this->obj->session->sess_destroy();
if ($this->isCookieLoggedIn())
{
setcookie('user','', time()-36000, '/');
setcookie('pass','', time()-36000, '/');
}
if (! $redir)
return;
header('location: '.$this->homePageUrl);
die;
}
?>
最佳答案
是的。
当 PHP 看到返回命令时,它会停止执行并将它返回给调用它的任何对象。这包括 include
、函数执行、方法执行等。
在下面,'Test' 永远不会回显:
$test = "test";
return;
echo $test;
如果您在包含的文件中,返回将停止它的执行,并且包含它的文件将完成执行。
其中一个用例与您描述的类似:
public function echoString($string)
{
if(!is_string($string))
{
return;
}
echo $string;
}
关于php - 当调用 PHP 函数并返回某些内容时,它会停止运行下面的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2090516/