count(): Parameter must be an array or an object that implements
Countable in xxx目录xxx.php文件xxx line
今天朋友下载了个WordPress主题,结果就报错了,上网查询得知是php从7.0升级到7.2后对参数要求更严格了,修改思路也有了
1.
降低网站php版本
,这个朋友第一时间就pass掉了
2.
修改报错php文件的源码
当然只能选第二条了
报错的是746行,根据注释,这里是
如果传进来的是数组并且数组值等于1
,才进行747行代码
由于是对数组的操作,就不能把count()换成strlen()函数,这是针对字符串的改法
我们只需要把传进了的
变量包裹在一对括号
里就OK了,参考下图
当然你也可以用if先判断啥的
再上传到WordPress后台一切这就正常了
近期重装开发机器环境,运行项目发现报错
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
查询官方手册发现7.2版本的
php
有更新,
count
传入非数组的变量会出现warning:
升级
php
版本时需注意。
以下是一个
Array
Access 最小示例
<?
php
class Foo
implements
\
Array
Access , \
Count
able
, \ IteratorAggregate
use qtil\
Array
Access , qtil\
Count
able
, qtil\ IteratorAggreg
<?
php
require_once ( 'vendor/autoload.
php
' );
use Armagetron \ Parser \ ParserInterface ;
class Example
implements
ParserInterface
public function playerEntered ( Event $ event )
// Do something with $event
composer require jmgq/a-star
创建一个实现DomainLogicInterface的类。 此界面中这三种方法的参数是节点。 节点可以是任何类型:它可以是
字符串
,整数,对象等。您可以根据业务逻辑来确定节点的形状。 您可以选择提供一种方法来标识您的节点()。
use JMGQ \ AStar \ DomainLogicInterface ;
class DomainLogic
implements
DomainLogicInterface
// ..
Warning:
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
。
解决
think
php
3项目在开发时弹出一个警告Warning:
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
。
这说明coun...
在
php
7.2版本中
count
() 函数仅支持参数为数组,在非数组的情况下将报错如下:
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
in xxx/shop/alipay/alipay_core.function.
php
on line 23
解决
方案可在执行前判断一下if(is_
array
($a...
后台从
PHP
7.0版本升级到7.2版本就报这个
错误
,是由于
PHP
7.2版本中将严格执行类型区分,参数类型不正确,将会出现警告,所以需要在使用
count
方法时注意参数的值
要不去检查参数的类型是否正确
要不就再换回
PHP
的版本
报错信息:Warning:
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
这主要是7.2版本更新,部分方法变得更加严谨了 当传递一个无效参数的时候,
count
()函数会抛出warning的警告
解决
办法
1.如果是使用laravel框架报错的话,composer update一下就可以修...
Warning:
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
因为
php
版本原因报错
$
array
=
array
(
array
("1","2","3","4"),
array
("a","b","c"));
function each_
array
($arr){
if (is_
array
($arr)){
array
_map("each_
array
",$arr);
报错信息:
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
(View: -----------------.
php
) 简单来说, 就是7.2版本起,
count
()函数中的参数必须是数组或者对象。
建议:在使用
count
函数计数之前,使用is_*来判断具体的类型,不是此类型使用强制转换 (
array
)或者抛出异常 try catch,之后在使用
count
函数进行计数
1.当我们使用laravel框架做项目时,经常会使用composer安装一些扩展包,这样可能会导致原本好好功能突然出现bug,开始报错不能使用,我在使用七牛云上传图片的时候结合webuploader上传到七牛云的时候就出现了这个问题。
报错内容:
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
in file;
刚开始的时候慌得一批,在网上找各种
解决
方案,最后跟人讨论找到了
解决
方案
解决
方案:
Warning in ./libraries/sql.lib.
php
#613
count
():
Parameter
must be an
array
or an
object
that
implements
Count
able
sudo vim /usr/share/
php
myadmin/libraries/sql.lib.
php
将(
count
($analyzed_sql_result...