繁体   English   中英

尝试访问 php 上 null 类型值的数组偏移量 7.4

[英]Trying to access array offset on value of type null on php 7.4

我继承了一个建立在旧版本 php 上的 Wordpress 网站。我在 php 上收到此错误 7.4 Trying to access array offset on value of type null in functions.php on line 846 - 849四行自定义代码是一些自定义代码行的一部分开发人员创建的我不完全理解,所以我不确定如何修复它。 研究让我相信它不会检查数组是否为空。 我试过这样做,但没有任何效果。 希望有人能抓住这个问题。

第 846 行从'Icon1'开始,第 849 行从'Icon4'开始

function add_icons( $post_id ) {
$MyArray_field = get_field( 'custom_icons', $post_id );
    $MyArray       = array(
        'Icon 1' => $MyArray_field['field_name_1'] ? '<span class="field1" title="Icon 1">1</span>' : '',
        'Icon 2' => $MyArray_field['field_name_2'] ? '<span class="field2" title="Icon 2">2/span>' : '',
        'Icon 3' => $MyArray_field['field_name_3'] ? '<span class="field3" title="Icon 3">3</span>' : '',
        'Icon 4' => $MyArray_field['field_name_4'] ? '<span class="field4" title="Icon 4">4</span>' : '',
    );
    $MyArray       = array_filter( $MyArray );

    return implode( ' ', $MyArray );
}

使用isset()检查密钥是否存在

尝试这个

function add_icons( $post_id ) {
$MyArray_field = get_field( 'custom_icons', $post_id );
    $MyArray       = array(
        'Icon 1' => isset($MyArray_field['field_name_1']) ? '<span class="field1" title="Icon 1">1</span>' : '',
        'Icon 2' => isset($MyArray_field['field_name_2']) ? '<span class="field2" title="Icon 2">2/span>' : '',
        'Icon 3' => isset($MyArray_field['field_name_3']) ? '<span class="field3" title="Icon 3">3</span>' : '',
        'Icon 4' => isset($MyArray_field['field_name_4']) ? '<span class="field4" title="Icon 4">4</span>' : '',
    );
    $MyArray       = array_filter( $MyArray );

    return implode( ' ', $MyArray );
}

在咨询了更多的开发人员后,他们向我指出这不是错误,而是“通知:”我正在使用 function,所以我决定暂时隐藏它。 是的,这是一个黑客,但我不能雇人来解决小问题。 如果我开始从 php 更新中遇到更多问题,我会提出更好的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM