Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在多维数组中找不到严格的指针_Php - Fatal编程技术网

Php 在多维数组中找不到严格的指针

Php 在多维数组中找不到严格的指针,php,Php,我有一段代码如下所示: 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 "Cou

我有一段代码如下所示:

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;
}
我从中得到:

然而,这项研究的结果表明:

Couldnt fine adminUI in:
array(2) {
  [0]=>
  array(1) {
    ["perm_desc"]=>
    string(7) "adminUI"
  }
  [1]=>
  array(1) {
    ["perm_desc"]=>
    string(9) "apiAccess"
  }
}
如果我将函数更改为不严格检查阵列,它将找到针,但严格检查失败

我正把头撞到桌子上想弄明白这件事

编辑


JanSchejbal非常棒,他指出这段代码工作得非常好。我没有足够的条理来理解我的工作目录。再次感谢Jan Schejbal。

我最初将此作为评论发布,但由于它确实是问题的答案

如果您有一个完全的WTF错误:

  • 更改错误消息并再次运行程序。如果显示原始错误消息,则表明您运行的文件与正在编辑的文件不同(例如,未上载,目录错误),或者在某个地方有另一份错误消息生成代码的副本

  • 使用显示不可打印字符的编辑器检查文件


  • 1号是导致无法解释的错误的最常见原因之一。

    我无法重现该问题。使用显示不可打印字符的编辑器检查文件,修复错误消息中的键入错误,然后再次运行程序。如果显示的错误信息有拼写错误,说明您运行的是旧版本,或者有错误信息生成代码的另一份副本。哇……。我几乎不好意思承认我的错误。我正在编辑github版本,而不是测试环境。我可以感谢你无数次。我将把它归咎于睡眠不足,Aptana没有提醒我打开了一个本地文件和一个服务器版本。作为答案添加了它。这是每个人都会犯的错误(猜猜我是怎么想到的…)。