我有一个PHP函数,我用它来确定我的用户是否登录,它非常简单,代码本身也可以。我以前从未使用过很多功能,但我想开始。所以我有我的函数is_logged(),如果用户登录则返回true,否则显然是false。但是在使用该功能时,无论情况如何,它总是返回true。如果我在函数中获取代码,并且明确地将它放在函数之外,它就可以工作,但如果我把它放回函数中,即使用户注销,它也会返回true。
is_logged功能
function is_logged(){
if(!empty($_SESSION["user"])){
return true;
} else {
return false;
}
}
我是如何尝试测试该功能的。
if(is_logged) { echo "<br />Logged In"; } else { echo "<br />Not Logged In"; }
但是这个函数只有在我从函数中取出内部代码时才有效...我很困惑为什么它不起作用。该函数列在可以读取会话变量的位置。
答案 0 :(得分:4)
更改
if(is_logged)
TO
if(is_logged())
您的功能很容易简化......
function is_logged() {
return !empty($_SESSION["user"]);
}
答案 1 :(得分:2)
您在没有is_logged()
(括号)的情况下调用()
函数。
我还建议用以下方法对其进行优化:
function is_logged(){
return !empty($_SESSION["user"]);
}
if(is_logged()){ echo "<br />Logged In"; } else { echo "<br />Not Logged In"; }
如果您使用if
布尔结果,则return
- 语句中没有必要。它只会减慢功能。
答案 2 :(得分:1)
尝试使其更具可读性:
if (is_logged)
{
echo "<br />Logged In";
}
else
{
echo "<br />Not Logged In";
}
尝试这样做:
if (is_logged() === true){
// Function has returned true so act accordingly
}else{
// If here. Function has returned false, so act accordingly
}
为什么使用:
is_logged()
?
嗯,这表示函数调用..而使用is_logged
将使PHP查找已定义的常量。