在PHP中计算数组

时间:2014-02-15 13:15:40

标签: php

如果我在我的php脚本中使用 count() 。值也计算变量返回1.why?< / p>

 Why php count values always returns 1?

示例1:

$arr = array('php','sql');
echo count($arr);

输出

2

示例2:

$arr = array('');
echo count($arr);

输出

1

即使我计算db中的项目也会返回相同的内容。 示例

在我的表中他们没有记录

$query = mysql_query("select * from table_name");
echo count($query);

output 

1

2 个答案:

答案 0 :(得分:5)

因为数组不为空

php > $array = array('');
php > echo count($array);
1

它的值已经为空字符串=&gt; “”

php > print_r($array);
Array
(
    [0] =>
)

count并不总是返回1,这是纯粹的贪婪,看:

php > echo count(array());
0

答案 1 :(得分:0)

  • 对于数组,count返回数组中的项目数。

    注意,array('')包含一个项,而不是零; array(0)array(null)array(false)等也是如此 - 每个都包含一个项。只有array()包含项目。

  • 对于大多数其他变量类型,count几乎返回1。这只是一个设计决定 - 因为对“不可数”值的调用计数是无用的,他们决定让它总是返回一个。

    mysql_query属于这种情况。由于mysql_query不是数组,而是返回resource type的值。因此$rsrc = mysql_query('...'); echo count($rsrc);将始终返回1

  • 同样count专门针对null和对象,请参阅here