如果我在我的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
答案 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。