【PHP】str_replace()の挙動めも。

str_replace()に配列を渡した際の挙動が面白かったのでメモ。

下記コードを実行すると結果は「B」ではなく「F」となる。

$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

上記の場合「A」の置換文字列としてマッピングされているものは「B」であるが、
「B」に置換されたあと、すかさず「C」に置換されるため、
この挙動が連鎖していき最終的に「F」となる。

str_replace()は左から順番に処理されていくんだね!