zbp支付宝即时到帐插件显示 count(): Parameter must be an array or an object 错误的解决办法

李洋博客 2022-03-25 1.23 W阅读 2评论

温馨提示:这篇文章已超过753天没有更新,请注意相关的内容是否还可用!

最近疫情防控开始严峻起来了,在家远程办公了,今天在适配唐朝用户中心的时候,需要实现积分购买等功能,在安装未寒的支付宝即时到账插件的时候项目时弹出一个警告“E_WARNING : count(): Parameter must be an array or an object that implements Countable (set_error_handler)”,这是php7版本引起的,版本更新,部分方法变得更加严谨了 当传递一个无效参数的时候,count()函数会抛出warning的警告,如图:

zbp支付宝即时到帐插件显示 count(): Parameter must be an array or object 错误的解决办法 第1张

既然提示count()参数必须是一个数组或一个对象,那我们就直接将它设为数组试试,找到路径位置:“/zb_users/plugin/alipay/lib/alipay_core.function.php”,中的25行,找到如下代码:

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

修改为:

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

如图:

zbp支付宝即时到帐插件显示 count(): Parameter must be an array or object 错误的解决办法 第2张

保存上传,后台首页清空缓存并编译模板,刷新页面,错误提示消失了,功能已经可以正常使用。当然这个插件以后可能会失效,毕竟支付宝上架要在5月份停止MD5秘钥接口,后期用户中心支付宝接口应该会有新的方式不用着急,等待更新即可,好了,这个问题暂时解决了,接续做用户中心兼容啦,有问题留言反馈吧。

文章版权声明:除非注明,否则均为老李笔记原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (有 2 条评论,12311人围观)
网友昵称:明月登楼
明月登楼 V 铁粉 Google Chrome 99.0.4844.74 Windows 10 x64 沙发
2022-03-25 来自上海 回复
[Badlaugh][Badlaugh]哈哈,你的水印跟弹幕有一比![Badlaugh]
网友昵称:李洋博客
李洋博客 V 博主 Sogou Explorer Windows 7 x64
2022-03-25 来自上海 回复
@明月登楼 哈哈,是的,感觉不好看,下次不打算用了。
取消
微信二维码
微信二维码
支付宝二维码