いつ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でその間違いを犯すことはありません。