最近,我发现需要通过string
来处理他的信件
据我所知,PHP中的string
被表示为一个字节的array
,如文档中所述。
然后我自然而然地写道:
$str = 'Hello';
foreach ($str as $letter) {
doMyThingsOnLetter($letter);
}
不幸的是,我收到了一个错误,告诉我我已经为foreach提供了一个invalid argument
我知道这是可行的:
$str = 'Hello';
for($i = 0; $i < strlen($str); $i++) {
doMyThingsOnLetter($str[$i]);
}
所以在这里,$str
被认为是一个数组,但是通过一个foreach
,我们得到了一个无效参数的错误(当它在文档中声明它允许数组时)
PS:我知道str_split()
就是为了这个目的而存在的,但这不是我关心的问题
发布于 2018-10-11 08:16:38
$str[$i]
不会将其视为数组。这只是substr($str, $i, 1)
的一种简写形式。
您可以使用str_split()
从字符串中获取字符数组:
foreach (str_split($str) as $letter)
可以访问和修改字符串中的
字符,方法是使用方阵括号指定字符串后面所需字符的从零开始的偏移量,如在
$str[42]
中一样。
https://stackoverflow.com/questions/52750370
复制相似问题