我有以下代码
public function is_logged_in()
{
if(isset($_SESSION['userSession']))
{
return true;
}
}
if($reg_user->is_logged_in()!="")//I don't understand this evaluation
{
$reg_user->redirect('home.php');
}
从我有限的理解,函数is_logged_in()
返回一个布尔值,我评论的行上的条件是检查返回的值是否不等于空字符串。这是正确的做法它?如果有人能解释发生了什么,我会很高兴。我是初学者,请原谅我,如果我的问题有点傻。
答案 0 :(得分:3)
在您的函数中,is_logged_in
有两种情况:
需要理解的重点是"布尔值不等于空字符串"
var_dump(true != ''); // true {As boolean not equal to empty string; return true}
var_dump(null != ''); // false
可能的解决方案
return false
if(!empty($reg_user->is_logged_in()))
从手册:
以下内容被认为是空的:
我希望这会帮助你理解。
答案 1 :(得分:0)
如果您想检查$reg_user->is_logged_in()
的结果是否为空字符串,则必须使用此字段:
if ($reg_user->is_logged_in() !== "")
三重比较确保类型也相同。
例如,('' == false)
将返回true,但('' === false)
将返回false。