尝试更新到 PHP 7.4 但在元素中出现此错误,警告:count():参数必须是实现 Countable 的数组或对象

Trying to update to PHP 7.4 but getting this error in an element, Warning: count(): Parameter must be an array or an object that implements Countable

嘿,我是新来的,听说过很多关于这个有用社区的信息。我正在尝试将我的自定义构建主题更新为 PHP 7.4,但在兼容性测试期间我发现了这个错误,我们将不胜感激。

我对 PHP 的了解为 0(目前)

这是代码。

$type_terms = get_the_terms( $post->ID,"property-type" );
$type_count = count($type_terms);
if(!empty($type_terms)){
    echo '<small> - ';
    $loop_count = 1;
    foreach($type_terms as $typ_trm){
        echo $typ_trm->name;
        if($loop_count < $type_count && $type_count > 1){
            echo ', ';
        }
        $loop_count++;
    }
    echo '</small>';
}else{
    echo '&nbsp;';
}
?>
            </span>
        </h5>
    </div>

    <div class="property-meta clearfix">
        <?php

谢谢

来自 WordPress documentation 关于 get_the_terms :

Return: Array of WP_Term objects on success, false, if there are no terms or the post, does not exist, WP_Error on failure.

这意味着 get_the_terms 函数将 return 这 3 个选项中的 1 个:

  1. 错误
  2. 数组

如果 post 有一些“条款”,那么您将不会收到任何警告,但是当您尝试对一些不是有效数组(或任何可数对象)的结果进行计数时,就会出现警告。 所以你可以在尝试计算获取的术语之前检查它:

if(is_array($type_terms))
   $type_count = count($type_terms);
else 
   $type_count = [];

或三元运算:

$type_count = is_array($type_terms) ? count($type_terms); : [] ;