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
相关产品推荐
相关产品推荐

