为了账号安全,请及时绑定邮箱和手机立即绑定

Wordpress 错误:警告:count():参数必须是数组或实现 Countable 的对象

Wordpress 错误:警告:count():参数必须是数组或实现 Countable 的对象

PHP
蓝山帝景 2022-06-17 16:03:25
第一行是问题代码。我不知道如何将计数更改为可以工作的东西。if(count($item[2]) > 0){    if($item[2][0] == 'plane' || $item[2][0] == 'url'){        if($item[2][0] == 'url'){            $arr = explode('file/d/',$id);            $arr1 = explode('/',$arr[1]);            $id = $arr1[0];        }   } }?>
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

在 PHP7.2中,在尝试计算不可数事物时添加了警告。要使其修复更改此行:

if(count($item[2]) > 0){

有了这个:

if(is_array($item[2]) && count($item[2]) > 0){

在 PHP7.3中添加了一个新函数is_countable,专门用于解决该E_WARNING问题。如果您使用的是 PHP 7.3,那么您可以更改此行:

if(count($item[2]) > 0){

有了这个:

if(is_countable($item[2]) && count($item[2]) > 0){


查看完整回答
反对 回复 2022-06-17
?
千巷猫影

TA贡献1829条经验 获得超7个赞

试试下面的代码:


if (is_array($item[2]) || $item[2] instanceof Countable || is_object($item[2])) {

    if(count($item[2]) > 0){

        if($item[2][0] == 'plane' || $item[2][0] == 'url'){

            if($item[2][0] == 'url'){

                $arr = explode('file/d/',$id);

                $arr1 = explode('/',$arr[1]);

                $id = $arr1[0];

            }

        }

    }

}

检查它


查看完整回答
反对 回复 2022-06-17
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

我相信在某些情况下,这会$item[2]返回null或任何其他不可数的值。从PHP 7开始,您将无法计算未实现可数的对象。所以你需要先检查它是否是一个数组:


if(is_countable($item[2])){ // you can also use is_array($item[2])

    if(count($item[2]) > 0){

        //rest of your code

    }

}

另一种方法(虽然不是首选)是将您的对象传递给ArrayIterator. 这将使它可迭代:


$item_2 = new ArrayIterator($item[2]);

if(count($item_2) > 0){

   //rest of your code

}


查看完整回答
反对 回复 2022-06-17
  • 3 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号