【发布时间】:2011-11-18 03:13:51
【问题描述】:
我很难理解何时strtr 比str_replace 更可取,反之亦然。尽管替换子字符串的顺序相反,但似乎可以使用任一函数获得完全相同的结果。例如:
echo strtr('test string', 'st', 'XY')."\n";
echo strtr('test string', array( 's' => 'X', 't' => 'Y', 'st' => 'Z' ))."\n";
echo str_replace(array('s', 't', 'st'), array('X', 'Y', 'Z'), 'test string')."\n";
echo str_replace(array('st', 't', 's'), array('Z', 'Y', 'X'), 'test string');
这个输出
YeXY XYring
YeZ Zring
YeXY XYring
YeZ Zring
除了语法之外,使用其中一个有什么好处吗?任何情况下都不足以达到预期的结果?
【问题讨论】:
-
从可读性的角度来看,
strtr很容易被误读为strstr,这是完全不同的。我开始认为我有阅读障碍。使用 str_replace 不会犯这个错误。
标签: php string str-replace strtr