我已经阅读了关于 in_array 的所有其他文章,但仍然不明白为什么我的结果很奇怪。我从其他人那里继承了这段代码,并且不完全理解他们为什么做某些事情。当用户登录时,从数据库中获取数据,其中一个字段是他们的“级别”。1 是管理员,2 是普通用户,以此类推。从数据库中获取数据后,我们将用户级别(存储为 a:1:{i:0;s:1:"2") 放入数组中:
$user_level = unserialize($this->result['user_level']);
$_SESSION['unt']['user_level'] = $user_level;
稍后我们检查这是否是管理员:
error_log(print_r($_SESSION['abc']['user_level'])); //this is always "1"
if (in_array('1', $_SESSION['abc']['user_level'])) { //should be yes, correct?
然而不知何故,即使 SESSION 变量为 1,if 语句也永远不会评估为真。我错过了什么?