【问题标题】:PHP count() returns NULL on non-empty arrayPHP count() 在非空数组上返回 NULL
【发布时间】:2017-11-11 14:10:44
【问题描述】:

我将一大堆数据填充到一个数组中(通过从内存缓存中拉入或查询数据库)。我想计算这个数组中有多少行,以确保它大于 0。当我使用 count() 时,它什么也不返回,即使数组已满。

为了排除故障,我尝试了以下代码:

$item_count=count($item_data);
print_r($item_data);
die($item_count);

这会打印出一个巨大的数组,我可以看到它有 146 个元素。但是 $item_count 是 NULL。知道有什么问题吗?谢谢!

根据 cmets 的要求,这是我试图计算的数组的示例:

Array
(
    [0] => Array
        (
            [calories] => 190
            [healthy_option] => 0
            [name] => Chicken McNuggets
            [url_name] => chicken-mcnuggets
            [category_name] => Chicken Nuggets and Strips
            [category_url_name] => chicken-nuggets-strips
            [category_id] => 85
        )

    [1] => Array
        (
            [calories] => 380
            [healthy_option] => 0
            [name] => Chicken Selects Premium Breast Strips - 3 piece
            [url_name] => chicken-selects-premium-breast-strips-3-piece
            [category_name] => Chicken Nuggets and Strips
            [category_url_name] => chicken-nuggets-strips
            [category_id] => 85
        )

)

【问题讨论】:

  • 我不相信count 可以返回null。你确定你没有拼错什么吗?如果没有,请提供复制示例数据。
  • 试试echo $item_countvar_dump($item_count);
  • 无法使用提供的示例数据进行复制。去3v4l.org看看你能不能。
  • die("$item_count"); 将正常工作

标签: php arrays php-7.1


【解决方案1】:

die() 函数的行为类似于 exit()。 这意味着整数参数被视为“状态”。

来自文档:

如果 status 是一个整数,该值将用作退出状态而不打印。退出状态应在 0 到 254 的范围内,退出状态 255 由 PHP 保留,不得使用。状态 0 用于成功终止程序。

如果你想打印一个值,我建议你使用其他的东西,比如 echo、print_r 等。

不使用 die() 你有同样的烦恼吗?

【讨论】:

  • 不错的收获,完全错过了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
相关资源
最近更新 更多