理解错误:布尔值上的数组偏移访问
PHP 7.4 引入了严格类型检查的更改,导致错误“尝试访问 bool 类型值的数组偏移量。”当尝试对布尔类型的值使用数组语法(方括号)访问数组元素时,会发生此错误。
PHP 7.4 修复
在提供的示例中,抛出错误是因为当查询结果为空时$Row['Data']返回布尔值。要解决此问题,您可以使用 null 合并运算符 (??) 来检查 $Row['Data'] 是否为 null,如果是,则为其分配一个默认值。这确保您始终可以访问数组元素而不会遇到错误。
这是使用 null 合并运算符的代码的更新版本:
public static function read($id) { $Row = MySQL::query("SELECT `Data` FROM `cb_sessions` WHERE `SessionID` = '$id'", TRUE); $session_data = $Row['Data'] ?? ''; return $session_data; }
或者,您可以使用 null合并运算符直接为 $Row['Data'] 分配默认值:
$Row['Data'] ??= 'default value';
这将设置如果 $Row['Data'] 为 null,则将其设置为 '默认值',然后照常返回其值。这两种方法都通过确保 $Row['Data'] 始终计算为有效的数组偏移值来有效防止错误。
以上是为什么 PHP 7.4 会抛出'尝试访问 Bool 类型值的数组偏移量”?的详细内容。更多信息请关注PHP中文网其他相关文章!