我知道 php 中的字符串是.....字符串,但例如我可以
$str = 'String';
echo $str[0];
echo $str[1];
//result
S
t
echo count($str)
//result
1
为什么我可以像在数组中一样穿过它们但不能用计数来计算它们?(我知道我可以使用 strlen() )
因为这就是它的工作原理。您可以使用括号表示法访问特定的字节偏移量。但这并不意味着字符串是一个数组,并且您可以使用需要数组的函数。$string[int]
是 的语法糖substr($string, int, 1)
,仅此而已。
因为字符串不是数组。为了方便起见,它们允许您使用相同的语法查找字母 字节偏移量(不一定是多字节字符串中的字母),但仅此而已。
数组也可以有键并且可以排序。如果字符串是完整的数组,您可以为每个字母指定一个键,或者使用其中一个数组函数按字母顺序对字母进行排序。
长话短说:字符串不是数组,即使它们的一小部分语法相似。