PHP - 为什么count()不像字符串上的strlen()?

时间:2011-06-24 11:38:52

标签: php

字符串是一个字符数组,对吗?如果是,那么为什么count()不会在字符串上产生与strlen()相同的结果?

7 个答案:

答案 0 :(得分:21)

除非它是一个对象,否则count将其参数转换为数组,并且

  count((array) "example")
= count(array("example"))
= 1

答案 1 :(得分:15)

字符串是C,C ++和Java中的字符数组。在PHP中,它不是。 请记住,PHP是一种非常松散的语言,您可以通过[] - 选择器从PHP字符串中获取字符,但它仍然不能使它成为一个数组。

答案 2 :(得分:3)

count()计算Array中的条目数。

$test = array(1,2,3);
echo count($test);

输出:3

count()能够做到时,您为什么要在string上使用strlen()?您不确定输入是string还是array?然后使用is_array()检查。

答案 3 :(得分:1)

特定编程语言在内部如何处理字符串,并不一定意味着您可以平等地处理它,因此“相关”数据类型。您所描述的内容可能是简单的C.但P​​HP不是C,因此不遵循相同的特征。

答案 4 :(得分:1)

字符串只是一系列字符,count只计算数组中元素的数量。

使用$ string [$ index];它只是帮助你找到第N个角色的快捷方式,

您可以使用count(explode('',$string));,这可能是strlen所做的

今天的教训是

count ==数组长度

strlen ==字符串长度

答案 5 :(得分:0)

count获取数组中元素的数量,srtlen获取字符串的长度。这是在文档中:

http://php.net/manual/en/function.strlen.php

答案 6 :(得分:0)

对于数组值计数,

count更适合用户 strlen它只计算str中的char的数量.....