我有一大堆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"])
) {...................'
非常感谢任何帮助。
答案 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');