警告:count():必须是实现 Countable 的数组或对象
Posted
技术标签:
【中文标题】警告:count():必须是实现 Countable 的数组或对象【英文标题】:Warning: count(): must be an array or object that implements Countable 【发布时间】:2018-09-10 15:43:51 【问题描述】:我已迁移到使用 php v7(来自我的 PHP v5.4)的新服务器,现在我的网站上显示错误。
这是返回错误的代码行:
// The value of $ip at this point would look something like: "192.0.34.166"
$ip = ip2long($ip);
// The $ip would now look something like: 1073732954
if(!count($ip) > 0 || !preg_match('/^\d+$/', $ip) || empty($ip))
$ip="0000000000";
我该如何解决这个问题?
【问题讨论】:
看起来这可能是 7.2 的新行为,github.com/processwire/processwire-issues/issues/408 在使用前检查类型似乎是解决方案。 那些在CodeIgniter中遇到问题的人是:if ( count($articles))..
,他们应该使用:if ( count((array)$articles))..
作为here
【参考方案1】:
ip2long
从未返回数组。我认为您可以安全地从您的状况中删除 !count($ip) > 0 ||
。
【讨论】:
你也可以只做if ($ip === false)
,因为ip2long
在错误时返回false
,或者在成功时返回一个长整数。不需要正则表达式。以上是关于警告:count():必须是实现 Countable 的数组或对象的主要内容,如果未能解决你的问题,请参考以下文章
MYBB 警告 [2] count():参数必须是数组或实现 Countable 的对象 - 行:906
PHP错误:警告:count():参数必须是实现Countable的数组或对象
PHP警告消息:count():参数必须是实现Countable的数组或对象[重复]
警告:count():参数必须是一个实现Countable的数组或对象(在数组中是多维的)
./libraries/plugin_interface.lib.php#551 count() 中的警告:参数必须是数组或实现 Countable 的对象