修复php警告:偏移量类型错误

时间:2018-06-21 16:47:39

标签: php

此代码的每次迭代都会出现“非法偏移类型”错误。如果有人可以提供帮助,以下是代码:

if ( ! empty( $display_args['allowed_tags'] ) ) {
    $allowed_tags = [];

    foreach ( $display_args['allowed_tags'] as $tag ) {
        $allowed_tags[ $tag ] = array();
    }

    print_r($allowed_tags);
}

任何想法。预先感谢。

1 个答案:

答案 0 :(得分:2)

在迭代的某个时刻,$tag中的$allowed_tags[ $tag ]不能用作数组键。

例如,尝试执行:

<?php
$a[ array() ] = 'hello';

您将获得:

  

警告:{{filepath}}第2行中的偏移量类型非法

因此,您不能像这样盲目使用$tag


每个评论的更新:

对于调试,您可以使用is_scalar()来查看一个值是否可用作数组键:

if ( ! empty( $display_args['allowed_tags'] ) ) {
    $allowed_tags = [];

    foreach ( $display_args['allowed_tags'] as $tag ) {
        if( is_scalar( $tag ) ) {
            $allowed_tags[ $tag ] = array();
        }
        else {
            echo 'cannot use!';
            var_dump( $tag );
            echo '<br>';
        }
    }

    print_r($allowed_tags);
}