我知道,在PHP字符串.....字符串,但是比如我可以做字符串作为PHP数组
$str = 'String';
echo $str[0];
echo $str[1];
//result
S
t
echo count($str)
//result
1
为什么我可以走线槽他们像一个数组中,但不能指望他们数数? (我知道我可以使用strlen())
我知道,在PHP字符串.....字符串,但是比如我可以做字符串作为PHP数组
$str = 'String';
echo $str[0];
echo $str[1];
//result
S
t
echo count($str)
//result
1
为什么我可以走线槽他们像一个数组中,但不能指望他们数数? (我知道我可以使用strlen())
因为这就是它的工作原理。您可以使用括号表示法访问特定的字节偏移量。但是,这并不意味着字符串是一个数组,你可以使用期望数组的函数。 $string[int]
是substr($string, int, 1)
的语法糖,仅此而已。
因为字符串不是数组。它们允许您使用相同的语法来查找字母以方便您,但这就是它的原因。
数组也可以有键,也可以排序。如果字符串是完整数组,则可以为每个字母指定一个键,或者使用某个数组函数按字母顺序排列字母。
长话短说:字符串不是数组,即使它们的语法的一小部分是相似的。
我认为区分“字母”和*字节偏移量是很重要的。 :) – deceze
因为用'[]'索引字符串是语法糖。字符串不是PHP中的数组。 – Tomalak