警告PHP

时间:2016-02-09 06:58:35

标签: php arrays string offset

我有一大堆PHP代码,它给了我错误:

  

警告:非法字符串偏移' mod_modulecode'在C:\ xampp \ htdocs \ MP \ multi \ functions.php第29行

这是与警告有关的代码:

function set_rights($menus, $menuRights) {
    $data = array();
    for ($i = 0, $c = count($menus); $i < $c; $i++) {
        $row = array();
        for ($j = 0, $c2 = count($menuRights); $j < $c2; $j++) {
            if ($menuRights[$j]["rr_modulecode"] == $menus[$i]["mod_modulecode"]) {
                if (authorize($menuRights[$j]["rr_create"]) || authorize($menuRights[$j]["rr_edit"]) ||
                        authorize($menuRights[$j]["rr_delete"]) || authorize($menuRights[$j]["rr_view"])
                ) {...................'

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

PHP所说的是

中的某些迭代

if ($menuRights[$j]["rr_modulecode"] == $menus[$i]["mod_modulecode"]) {

$menus[$i]是一个字符串,而不是一个数组,您尝试像包含密钥mod_modulecode的数组一样访问它。

为了帮助追踪此错误,我建议:

if(is_string($menus[$i]) {
    var_dump('string bug','i',$i,'j',$j,'$menus[$i]',$menus[$i]);
}
if ($menuRights[$j]["rr_modulecode"] == $menus[$i]["mod_modulecode"]) {

或者甚至更好,如果你安装了xdebug,当抛出未捕获的异常时会显示局部变量:throw new Exception('string bug');