count(): Parameter must be an array or an object that implements Countable

http://laravel.com/

http://kejyun.github.io/Laravel-4-Docum ... roduction/
回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

count(): Parameter must be an array or an object that implements Countable

文章 yehlu »

https://blog.csdn.net/wuhounuanyangzhao ... s/84243809

报错信息:Warning: count(): Parameter must be an array or an object that implements Countable

这主要是7.2版本更新,部分方法变得更加严谨了 当传递一个无效参数的时候,count()函数会抛出warning的警告

解决办法

1.如果是使用laravel框架报错的话,composer update一下就可以修复了。

2.尽量不要传递无效的参数执行count,做好校验判断预防报错。
---------------------
版权声明:本文为CSDN博主「喵了个布娜娜」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wuhounuanyangzhao ... s/84243809
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Re: count(): Parameter must be an array or an object that implements Countable

文章 yehlu »

https://cloud.tencent.com/developer/article/1384819

这两函数在php7.3开始出现兼容问题, 为了更好的支持函数调用.
我们需要重写这两个函数.

function fun_each(&$array){
$res = array();
$key = key($array);
if($key !== null){
next($array);
$res[1] = $res['value'] = $array[$key];
$res[0] = $res['key'] = $key;
}else{
$res = false;
}
return $res;
}

function fun_count($array_or_countable,$mode = COUNT_NORMAL){
$res = 0;
if(is_array($array_or_countable) || is_object($array_or_countable)){
$res = count($array_or_countable, $mode);
}
return $res;
}
使用方法跟旧函数一模一样, 本次解决方案目的是为了让过程不报错而已.
参考一下吧.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。
回覆文章

回到「laravel」