我正在使用超全球$_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";
}
答案 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";
}