$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
$trans = array('A' => 'B','B'=>'C','C'=>'D','D'=>'E','E'=>'F');
echo str_replace($search, $replace, $subject);
echo "<br/>";
echo strtr($subject,$trans);
Output: F
B
使用 str_replace 时我得到 F,使用 strtr 我得到 B
就我而言,对于str_replace:它从左到右替换,因此 A 被替换为 B,而不标记位置已被替换,因此再次找到被 C 替换的 B,依此类推以获取值 F。
对于 strtr:我用 B 替换 A,并记住它已在该位置替换,
我明白了吗?有人可以向我解释一下吗?
是的,这是正确的。 str_replace()
按顺序进行替换,而strtr()
处理字符串中的每个字符并仅替换一次。