“许可”是用逗号分隔的整数列表,例如:1,10,70,1000 权限字符串是塞到$ _SESSION,然后爆炸如果in_array没有按预期工作?
$permissions = $_SESSION['user']['permissions'];
$type = explode(",", trim($permissions));
if(in_array(1337, $type)){
echo '<li><a href="protectedpage.php">Page Name</a></li>';}
出于某种原因,之后返回$类型,没有任何回音。 我赞同$ _SESSION [ '用户'] [ '许可'],并得到1337
我所做的print_r($型),并得到阵列([0] => 1337)
那么,为什么不in_array返回true?
使用var_dump($ type [0])来查看存储的值是否是整数,我真的怀疑。尝试if(in_array(“1337”,$ type) –
我无法复制,它适用于我,当你将$ permissions明确地设置为1337时,它会说什么? –
var_dump也会告诉你是否有类似如果将字符串长度与实际在转储中看到的内容进行比较,那么在'1,2,3,4'字符串中的空格(我怀疑它是这样) –