【发布时间】:2018-10-11 00:11:35
【问题描述】:
最近,我发现需要通过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 我们收到了无效参数的错误(虽然它在文档中声明它允许数组)
所以我想知道是否存在某种不同类型的数组来表示 PHP 中的字符串本身,还是只是 foreach 处理数组的方式不同?
PS:我知道str_split() 是为此目的而存在的,但这不是我关心的问题
【问题讨论】:
-
不深入 PHP 使用的内部数据类型,您可以将字符串视为实现
ArrayAccess而不实现Traversable -
... 或
Countable