版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://syre.blogbus.com/logs/28555464.html
str_replace 的前两个参数都可以是数组,当他们是数组时,会依次替换。比如 str_replace(array('a', '1'), array('b', '2'), 'aaa111'); 的结果就是 bbb222。
但是这里 str_replace 的行为实际上并不是把 'a' 映射为 'b',把 '1' 映射为 '2',而是先做一轮替换,把 'a' 替换为 'b' ,再做一轮替换把 '1' 替换为 '2'。在某些情况下,不了解这个情况,用str_replace 来做映射的时候就可能出错。
比如,想把 'a' 映射为 'b',把 'b' 映射为 'c',用str_replace(array('a', 'b'), array('b', 'c'), 'abc'); 的结果不是 'bcc' 而是 'ccc'。
要实现映射,得用另一个函数—— strtr。