$ _SESSION var而不是string

时间:2017-07-13 07:39:08

标签: php session

我正在使用超全球$_SESSION开展我的第一个项目,所以这对我来说还是一个新手。

我需要的是将整数存储到$_SESSION["role"]中,但当我影响它时,它会将整数值存储为字符串:

$_SESSION["role"] = serviceRole::getRoleByCuID($commonUser->getID());

serviceRole::getRoleByCuID()返回整数。

我每次使用它时都会投射变量,还是在我的超全局中传递其他类型的简单技巧?

我的问题是if语句:

if ($_SESSION["role"] != DEV){
    //Always goes there even though $_SESSION["role"] equals "1" (String)
    //and DEV is an integer constant that equals 1
    echo "You're not a developer";
}

1 个答案:

答案 0 :(得分:2)

但是你必须回显DEV$_SESSION["role"]并首先检查两个值是否相同,因为在这种情况下,类型转换不是问题。

if ((int)$_SESSION["role"] != DEV){
//Always goes there even though $_SESSION["role"] equals "1" (String)
//and DEV is an integer constant that equals 1
echo "You're not a developer";
}