PHP 8.1下WordPress MultivendorX插件数组偏移访问bool值报错修复求助
修复「Trying to access array offset on value of type bool」错误方案
错误原因
PHP 7.4及以上版本严格禁止对布尔值(bool)进行数组偏移访问(如$hh[0]),旧版本PHP会静默忽略这类错误,但新版本会直接抛出报错。你的代码中$hh被赋值为布尔值(大概率是某个函数执行失败返回了false),却直接尝试访问$hh[0],因此触发问题。
具体修复步骤
1. 修正报错的输入框代码
找到触发错误的<input>行,添加类型判断和偏移存在性检查,同时使用WordPress安全函数转义输出:
<input type="text" value="<?php echo is_array($hh) && isset($hh[0]) ? esc_attr($hh[0]) : ''; ?>">
is_array($hh):先判断$hh是否为有效数组类型isset($hh[0]):确保数组存在索引为0的元素esc_attr():对输出值进行转义,避免XSS安全风险
2. 修复$hh的赋值逻辑
找到定义$hh的代码行(比如$hh = 某个函数()),根据实际场景处理函数返回值:
- 如果
$hh来自字符串分割(如explode()):// 分割失败时返回空数组而非false $hh = explode('分隔符', $目标字符串) ?: []; - 如果
$hh来自WordPress元数据函数(如get_post_meta()):$hh = get_post_meta($post_id, '你的元键', false); // 强制将非数组值转为空数组 if (!is_array($hh)) { $hh = []; }
3. 测试验证
修改代码后刷新页面,确认报错消失,同时检查输入框内容是否正常显示。
内容的提问来源于stack exchange,提问作者StevieK
相关产品推荐
相关产品推荐

