最近,我发现有必要通过string
来执行他的信
据我所知,PHP中的string
表示为文档中所述的array
个字节。
然后我自然地写了:
$str = 'Hello';
foreach ($str as $letter) {
doMyThingsOnLetter($letter);
}
可悲的是,我说我为每个invalid argument
我知道这项工作:
$str = 'Hello';
for($i = 0; $i < strlen($str); $i++) {
doMyThingsOnLetter($str[$i]);
}
因此,这里$str
被认为是数组,但是foreach
导致无效参数错误(虽然它在文档中指出允许数组)
所以我想知道在PHP中字符串本身的表示是否存在某种不同类型的数组,或者这只是每个处理数组的方式不同吗?
PS:我知道有str_split()
用于此目的,但这不是我的关注
答案 0 :(得分:5)
$str[$i]
不会将其视为数组。这只是substr($str, $i, 1)
的简写。
您可以使用str_split()
从字符串中获取字符数组:
foreach (str_split($str) as $letter)
可以使用
$str[42]
中的方括号将字符串后的字符指定为从零开始的偏移量,从而访问和修改字符串中的字符。