当前位置: 首页 > 知识库问答 >
问题:

count():参数必须是数组或根据数组大小执行可计数错误的对象

宦博雅
2023-03-14

只有当返回的数组太长时,才会在下面的代码中生成此错误。用短数组(我不知道确切多少)不会发生。

$phone_numbers = array();
if(!empty($_POST['phone_numbers']))
    $phone_numbers = json_decode($_POST['phone_numbers']);
    $phone_numbers_var = str_repeat('?,', count(json_decode($_POST['phone_numbers'])) - 1) . '?'; // <-- error line

是否有一个限制,以计数()参数?

共有2个答案

潘衡
2023-03-14

有趣的是,如果数组中有以0开头的数字,则会发生错误。当我删除首字母0时,就可以了。

 $phone_numbers = [011364346387, 33334444, ..., n] //error
 $phone_numbers = [11364346387, 33334444, ..., n] //is ok!
储承
2023-03-14

首先检查你$_POST['phone_numbers']什么是得到

记住:

var_dump(计数(空))<代码>变量转储(计数(假));

将输出:

Warning: count(): Parameter must be an array or an object that implements Countable in

我认为PHP版本7.2的计数有点奇怪...但是你可以尝试这样的东西:

https://wiki.php.net/rfc/counting_non_countables

编辑:

请发表评论:

$POST['phone_numbers'] = [165567, 545675, 655666];

如果你尝试这样做:

json_decode($POST['phone_numbers']);

将返回此:

WARNING json_decode() expects parameter 1 to be string, array given on line number 4

数一数...你知道...只要做:

count($POST['phone_numbers']);
 类似资料:
  • 我面临着奇怪的案子。我在生产环境中面临一个错误,而在开发中它工作正常。 开发: Laravel 5.4.28 PHP 7.0.13 MYSQL 5.7.17 制作:Laravel 5.4.28 PHP 7.2.1 MYSQL 5.7.20 在实现代码中。我用过: 在开发中,它运行良好。但是在生产中,它给我这个错误:Count():参数必须是一个数组或一个在Builder.php中实现可数的对象(第

  • 我正在处理symfony,收到了这个消息 参数必须是实现可数的数组或对象 此消息仅针对PHP7.2.14显示,不针对PHP7.1.26。 我想在服务器上应用的解决方案,就像这一个phpmyAdmin。 我知道有一些解决方案涉及像这样更改代码。 但我想要一个解决方案,是所有页面,所以在服务器端。 提前谢谢!

  • 我将我的Wordpress站点从PHP 5.6更新到7.2,并注意到更新后我的Wordpress后端出现错误。它说: 我已经包括了那一行和下面两行的代码。任何帮助都将不胜感激。

  • 这是我的代码片段在文件public_html/wp-内容/主题/arabv3/CustomMetaBox/CMB2.php,从第565行开始 运行代码时,出现以下错误: 参数必须是一个数组或一个对象,实现可数的

  • 安装 让我们试着上一节课 好吧但是现在让我们尝试一个函数 现在有错误(警告)。为什么啊? 我还尝试通过composer安装phpdoc 但结果更糟 在这一点上,我想知道,这个phpdoc是一个有效的工具吗?是我不能用的吗?发生了什么?

  • 我在PHPmyadmin中有一些奇怪的错误。 ./libraries/pmd_common.php#405 count()中的警告:参数必须是实现可计数的数组或对象 回溯 ./db_designer.php#102:PMA_getLoadingPage(字符串'db_Name') 如何修复它?