preg_replace
私は週末に少し作業をしていて、何か変なものを見つけたときにPHPのpreg_replace
ドキュメントを読んでいました。
ドキュメントの例 #2 は、次の php コードが与えられた場合を示しています
<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>
出力は次のようになります
"The bear black slow jumped over the lazy dog."
そして、(私の意見では) デフォルトで出力されるべきものを生成するには、ksort()
事前に呼び出す必要があります。このような:
<?php
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);
?>
これは本当に php のバグの回避策ではないpreg_replace()
でしょうか? なぜphpはこのように動作するのですか? ここで宣言されている配列には、私が欠けている特異性がありますか?