警告: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 的对象

PHP 7.4 - 警告:count():参数必须是数组