字符串作为PHP中的数组

dof*_*nco 9 php arrays string

我知道php中的字符串是.....字符串但是例如我可以做

$str = 'String';
echo $str[0];
echo $str[1];

//result
S
t

echo count($str)
//result
1
Run Code Online (Sandbox Code Playgroud)

为什么我可以像在数组中那样走过它们但是不能算数呢?(我知道我可以使用strlen())

dec*_*eze 22

因为这是它的工作原理.您可以使用括号表示法访问特定的字节偏移量.但这并不意味着字符串是一个数组,并且您可以使用期望数组的函数.$string[int]是语法糖substr($string, int, 1),仅此而已.

  • 大声笑,好评如潮.好吧,他们*不是*字符抵消!试试:`$ s ='汉字'; $ S [1];` (2认同)
  • 在 PHP 中访问字符串的字节(不是字符)只是语法糖的想法是错误的,因为您可以使用索引分配(更改)字符串中的字节,但不能使用 substr 进行此类更改。使用索引,PHP 允许您将字符串视为任意内存块,需要处理各种非文本数据源。 (2认同)

Gol*_*rol 7

因为字符串不是数组.为方便起见,它们允许您使用相同的语法查找字母,但这就是它.

数组也可以有键,可以进行排序.如果字符串是完整数组,则可以为每个字母指定一个键,或者使用其中一个数组函数按字母顺序对字母进行排序.

长话短说:字符串不是数组,即使它们的语法的一小部分是相似的.