消息:尝试访问 null 类型值的数组偏移量
Message: Trying to access array offset on value of type null
我在脚本 (invoiceplane) 中多次遇到这个错误,我已经使用了几年,但不幸的是它的创建者没有维护它:
Message: Trying to access array offset on value of type null
我的服务器已经升级到 PHP 7.4,我正在寻找一种方法来解决问题并自己维护脚本,因为我对此非常满意。
这是出现错误的行:
$len = $cOTLdata['char_data'] === null ? 0 : count($cOTLdata['char_data']);
$cOTL数据被传递给函数:
public function trimOTLdata(&$cOTLdata, $Left = true, $Right = true)
{
$len = $cOTLdata['char_data'] === null ? 0 : count($cOTLdata['char_data']);
$nLeft = 0;
$nRight = 0;
//etc
顺便说一句,它包含在 mpdf 中,但是简单地覆盖 github 存储库中的文件并没有修复错误。
发生这种情况是因为 $cOTLdata
不为空但索引 'char_data'
不存在。以前的版本 PHP 可能对此类错误不那么严格,并默默地吞下了错误/通知,而 7.4 不再这样做了。
检查索引是否存在可以使用isset():
isset($cOTLdata['char_data'])
这意味着该行应如下所示:
$len = isset($cOTLdata['char_data']) ? count($cOTLdata['char_data']) : 0;
注意我切换了三元运算符的 then 和 else 情况,因为 === null 本质上是 isset 已经做的事情(但在肯定的情况下)。
我在脚本 (invoiceplane) 中多次遇到这个错误,我已经使用了几年,但不幸的是它的创建者没有维护它:
Message: Trying to access array offset on value of type null
我的服务器已经升级到 PHP 7.4,我正在寻找一种方法来解决问题并自己维护脚本,因为我对此非常满意。
这是出现错误的行:
$len = $cOTLdata['char_data'] === null ? 0 : count($cOTLdata['char_data']);
$cOTL数据被传递给函数:
public function trimOTLdata(&$cOTLdata, $Left = true, $Right = true)
{
$len = $cOTLdata['char_data'] === null ? 0 : count($cOTLdata['char_data']);
$nLeft = 0;
$nRight = 0;
//etc
顺便说一句,它包含在 mpdf 中,但是简单地覆盖 github 存储库中的文件并没有修复错误。
发生这种情况是因为 $cOTLdata
不为空但索引 'char_data'
不存在。以前的版本 PHP 可能对此类错误不那么严格,并默默地吞下了错误/通知,而 7.4 不再这样做了。
检查索引是否存在可以使用isset():
isset($cOTLdata['char_data'])
这意味着该行应如下所示:
$len = isset($cOTLdata['char_data']) ? count($cOTLdata['char_data']) : 0;
注意我切换了三元运算符的 then 和 else 情况,因为 === null 本质上是 isset 已经做的事情(但在肯定的情况下)。