Php 如果在_阵列中未按预期工作?
“权限”是以逗号分隔的整数列表,例如:1,10,701000 权限字符串被推入$\u会话,然后在分解后作为$type返回Php 如果在_阵列中未按预期工作?,php,Php,“权限”是以逗号分隔的整数列表,例如:1,10,701000 权限字符串被推入$\u会话,然后在分解后作为$type返回 $permissions = $_SESSION['user']['permissions']; $type = explode(",", trim($permissions)); if(in_array(1337, $type)){ echo '<li><a href="protectedpage.php">Page Name</a>&
$permissions = $_SESSION['user']['permissions'];
$type = explode(",", trim($permissions));
if(in_array(1337, $type)){
echo '<li><a href="protectedpage.php">Page Name</a></li>';}
$permissions=$\u会话['user']['permissions'];
$type=explode(“,”,trim($permissions));
if(在_数组中(1337$type)){
回音“”;}
出于某种原因,没有任何回应。
我回显了$\u会话['user']['permissions'],获得了1337条
我已经完成了打印($type)并得到了数组([0]=>1337)
那么为什么数组中没有返回true呢?尝试将
1337
放在引号中,'1337'
。我相信这会解决您的问题。我执行了以下代码,它运行良好
$permissions = '1,10,70,1000,1337';
$type = explode(",", trim($permissions));
if(in_array(1337, $type))
{
echo 'found';
}
我建议您检查以确保$permissions是您在失败的情况下所期望的。如果条件不起作用,尝试回显它,以便您可以检查。您可能还想删除任何空格,以防它弄脏东西
$permissions = $_SESSION['user']['permissions'];
$type = explode(",", str_replace(' ', '', $permissions));
if(in_array(1337, $type))
{
echo 'found';
}
else
{
echo $permissions;
}
使用var_dump($type[0])查看存储的值是否为整数,我对此表示怀疑。如果(在_数组(“1337”,$type)中无法复制,请尝试。它对我来说很好。当您将$permissions显式设置为1337时,它会说什么?var_dump还将显示是否存在类似空格的内容(我怀疑是这样的)在类似
1,2,3,4
的字符串中,如果将字符串长度与转储中实际看到的长度进行比较,-1这应该只在严格模式下起作用(即第三个参数是true
)。