我有一段代码如下:
if(array_key_exists('uid',$_SESSION)){
$userdata->readUser($_SESSION['uid']);
$ACL = new ACL($_SESSION['uid']);
$userPerms = $ACL->setACL();
if(!in_array_r("adminUI",$userPerms['perms'],true)){
echo "Couldnt fine adminUI in:";
var_dump($userPerms['perms']);
}
}
in_array_r函数是:
function in_array_r($needle, $haystack, $strict = false) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
我从哪来得到:in_array() and multidimensional array
但是输出显示:
Couldnt fine adminUI in:
array(2) {
[0]=>
array(1) {
["perm_desc"]=>
string(7) "adminUI"
}
[1]=>
array(1) {
["perm_desc"]=>
string(9) "apiAccess"
}
}
如果我更改函数以检查没有STRICT的数组,它会找到针,但是严格检查FAILS ...
我正在打我的脑袋试着想出这个。
修改
答案 0 :(得分:1)
我最初将此作为评论发布,但因为它确实是问题的答案......
如果您有完全WTF错误:
更改错误消息并再次运行程序。如果它显示原始错误消息,则表示您正在运行与编辑不同的文件(例如,不上载,错误的目录)或在某处生成错误消息生成代码的另一个副本。
使用显示
没有。 1是无法解释的错误的最常见原因之一。