尝试更新到 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 ' ';
}
?>
</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 个:
- 假
- 错误
- 数组
如果 post 有一些“条款”,那么您将不会收到任何警告,但是当您尝试对一些不是有效数组(或任何可数对象)的结果进行计数时,就会出现警告。
所以你可以在尝试计算获取的术语之前检查它:
if(is_array($type_terms))
$type_count = count($type_terms);
else
$type_count = [];
或三元运算:
$type_count = is_array($type_terms) ? count($type_terms); : [] ;
嘿,我是新来的,听说过很多关于这个有用社区的信息。我正在尝试将我的自定义构建主题更新为 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 ' ';
}
?>
</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 个:
- 假
- 错误
- 数组
如果 post 有一些“条款”,那么您将不会收到任何警告,但是当您尝试对一些不是有效数组(或任何可数对象)的结果进行计数时,就会出现警告。 所以你可以在尝试计算获取的术语之前检查它:
if(is_array($type_terms))
$type_count = count($type_terms);
else
$type_count = [];
或三元运算:
$type_count = is_array($type_terms) ? count($type_terms); : [] ;