php 警告:未初始化的字符串偏移量0

rbl8hiat  于 2023-05-16  发布在  PHP
关注(0)|答案(1)|浏览(127)

警告:未初始化的字符串偏移量0
我在线路(if($subMenues[$j]['id'] == $permisosMod[$k]['id_sub_menus']){)上有此错误;

public function Setupdashboard(){
            $data['page_tag']       = "Configuración - Empresa*";
            $data['page_title']     = "Configuración - Empresa*";
            $data['page_name']      = "setupdashboard";
            $data['permisos']       = $_SESSION['permisos'];
            $data['permisosMod']    = $_SESSION['permisosMod'];
            $data['ThisModulo']     = getModulo(get_class($this));  
            $_SESSION['moduloFull'] = $this->model->selectModulo($data['ThisModulo']);
            $data['menues']         = $this->model->selectMenues($data['ThisModulo']);
            for ($i=0; $i < count($data['menues']); $i++) { 
                $subMenues = $data['menues'][$i]['subMenues'];
                for ($j=0; $j < count((array)$subMenues); $j++) {
                    $permisosMod = $data['permisosMod'];
                    for ($k=0; $k < count($permisosMod); $k++) { 
                        if($subMenues[$j]['id'] == $permisosMod[$k]['id_sub_menus']){
                            $data['menues'][$i]['subMenues'][$j]['r'] = $permisosMod[$k]['r'];
                            $data['menues'][$i]['subMenues'][$j]['w'] = $permisosMod[$k]['w'];
                            $data['menues'][$i]['subMenues'][$j]['u'] = $permisosMod[$k]['u'];
                            $data['menues'][$i]['subMenues'][$j]['d'] = $permisosMod[$k]['d'];
                        }
                    }
                }
            }
            $data['nav_bar']        = "nav_admin.php";
            $data['page_functions_js']  = "functions_dsetupsdashboard.js";
            $this->views->getView($this,"setupdashboard",$data);
        }

在这个错误之后,我有另一个结果,我说这是因为在安装php 8之前,它对我来说是正确的。
致命错误:未捕获的类型错误:Cannot access offset of type string on string in C:\xampp\htdocs\ebsoftap\Controllers\Setupdashboard.php:29堆栈跟踪:#0 C:\xampp\htdocs\ebsoftap\Libraries\Core\Load.php(12):Setupdashboard->Setupdashboard('')#1 C:\xampp\htdocs\ebsoftap\Index.php(33):require_once('C:\xampp\htdocs...')#2

vof42yt1

vof42yt11#

我的代码中的问题在这一行:for ($j=0; $j < count((array)$subMenues); $j++) {,以前我这样做过,但在php 8.2 for ($j=0; $j < count($subMenues); $j++) {中仍然失败
为了解决这个问题,我在for循环之前添加了一个检查,以确保$subMenues是一个有效的数组。

for ($i=0; $i < count($data['menues']); $i++) { 
    $subMenues = $data['menues'][$i]['subMenues'];
    if (is_array($subMenues)) { // Verificar si $subMenues es un array válido
        for ($j=0; $j < count($subMenues); $j++) {
            // Resto del código
        }
    }
}

相关问题