【发布时间】:2016-02-09 06:58:34
【问题描述】:
我有这段 PHP 代码给了我错误:
警告:第 29 行 C:\xampp\htdocs\MP\multi\functions.php 中的非法字符串偏移 'mod_modulecode'
这是与警告相关的代码:
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"])
) {...................'
任何帮助将不胜感激。
【问题讨论】:
-
您的
$menus数组是否包含mod_modulecode键?如果它包含,那么您的循环正在尝试访问下一个元素到最后一个不存在的元素。如果是这样,在你的循环中$i < $c - 1试试这个 -
你能在循环使用之前打印你的数组吗,我怀疑你的数组键没有被引用为字符串。
-
看来
$menus是字符串数组,而不是多维数组。 -
$menus[$i] 是一个字符串,而不是一个数组,因此只有数字偏移量。