phpcount数组报错_PHP7.2中count()函数报错count(): Parameter must be an array or an object that implements Coun...

在php7.2版本中 count() 函数仅支持参数为数组,在非数组的情况下将报错如下:

count(): Parameter must be an array or an object that implements Countable in xxx/shop/alipay/alipay_core.function.php on line 23

解决方案

可在执行前判断一下

if(is_array($arr)){

count($arr);

}

如果统计的是字符串,可替换为 strlen() 函数,例如

$arg = substr($arg,0,count($arg)-2);

修改为

$arg = substr($arg,0,strlen($arg)-1);

应用场景:支付宝参数处理。

/**

* 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串

* @param $para 需要拼接的数组

* return 拼接完成以后的字符串

*/

function createLinkstring($para) {

$arg = "";

foreach ($para as $key => $val) {

$arg.=$key."=".$val."&";

}

//去掉最后一个&字符

//$arg = substr($arg,0,count($arg)-2); //php7.2下count函数的参数只能是数组,参考 http://yangjunwei.com/3301.html

$arg = substr($arg,0,strlen($arg)-1);

//如果存在转义字符,那么去掉转义

if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}

return $arg;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值