了解 str_replace 和 strtr 在 PHP 中的工作原理


Understanding how str_replace and strtr works in php

 $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()处理字符串中的每个字符并仅替换一次。