我设置了一个非常简单的代码片段:
$string = 'Some random words. Some more random, very random words.';
$words = explode(" ", $string);
for ($i = 0; $i < count($words); $i++) {
$word = $words[$i];
$words[$i] = str_replace(".", "!", $word);
$words[$i] = str_replace(",", "?", $word);
}
print_r($words);
输出是这样的:
Array
(
[0] => Some
[1] => random
[2] => words.
[3] => Some
[4] => more
[5] => random?
[6] => very
[7] => random
[8] => words.
)
为什么只有第二个str_replace()
函数影响字符串?如果我删除第二个str_replace()
,第一个会完美运行。这与使用无关,str_replace()
但我相信我做的事情非常非常简单。
顺便说一句 - 我知道preg_replace()
并将一个数组传递给str_replace()
但想听听这种特殊情况:)。
编辑: 感谢大家的快速响应。我为这样的问题感到羞耻,但一开始并没有引起我的注意。谢谢大家!我会接受Mike Brant的第一个正确答案。