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
構文は別として、一方を他方よりも使用する利点はありますか? 目的の結果を達成するのに十分でない場合はありますか?