You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP错误求助:Trying to access array offset on value of type bool

解决PHP错误:Trying to access array offset on value of type bool

这个错误的核心是$carrera变量为布尔类型(大概率是false),但你尝试将其当作数组访问["nombre"]键值。通常是因为CarrerasC::CarreraC()方法未查询到对应数据,返回了false而非预期的数组结构。

具体解决步骤

  • 先验证请求参数的有效性
    确保$_GET["url"]格式符合预期(比如类似xxx/123的带斜杠结构),避免$exp[1]不存在导致后续查询出错:

    if (!isset($_GET["url"]) || count($exp) < 2) {
        echo '<h1>参数错误</h1>';
        exit;
    }
    
  • 判断查询结果的合法性
    在使用$carrera前先校验其类型和键值是否存在,避免直接访问布尔值的数组偏移:

    $carrera = CarrerasC::CarreraC($columnaC, $valorC);
    if (is_array($carrera) && isset($carrera["nombre"])) {
        echo '<h1>Estudiantes de: '.$carrera["nombre"].'</h1>';
    } else {
        echo '<h1>未找到对应专业</h1>';
    }
    
  • 临时调试排查问题
    可以添加调试代码定位具体原因:

    // 打印参数和查询结果
    var_dump($_GET["url"], $exp, $valorC, $carrera);
    

修改后的完整代码示例

<section class="content-header">
    <?php
    $exp = isset($_GET["url"]) ? explode("/", $_GET["url"]) : [];
    if (count($exp) < 2) {
        echo '<h1>请求参数错误</h1>';
    } else {
        $columnaC = "id";
        $valorC = $exp[1];
        $carrera = CarrerasC::CarreraC($columnaC, $valorC);
        if (is_array($carrera) && isset($carrera["nombre"])) {
            echo '<h1>Estudiantes de: '.$carrera["nombre"].'</h1>';
        } else {
            echo '<h1>未找到该专业的信息</h1>';
        }
    }
    ?>
</section>

内容的提问来源于stack exchange,提问作者Leonardo peñaranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:43:16