PHP の strtr() は str_replace() より 4 倍速いのはなぜ
PHP の strtr() は str_replace() より 4 倍速いのはなぜ
置換関数はどのように実装されているのでしょうか?どのようなアルゴリズムですか?
誰か詳しく説明してくれませんか!
-----解決策---------
私はいつも異議を唱えているようです...もう一度。
「strtr は str_replace よりも 4 倍速い」という投稿者の記述が正しいことに誰もが同意しているようです...
今、私は検索しました。オンラインでこの文を英語で見つけることができません。中国語でもかなりの数がありますが、ほとんどの文には「と言われています」という単語が追加されています。
次に、マシンで試してみました。
php -r ' echo microtime(true);for($i=0;$i
1304349351.8423
単なるテスト
1304349351.8648
php - r ' echo microtime(true);for($i=0;$i
1304349393.8981
ただのテスト
1304349393.9116
それは...いや...4 回のようです...非常に多くの...しかも str_replace の方が速いようですね??!
簡単にテストしただけでこのステートメントが間違っているとはあえて言いませんが、皆さんもマシン上で試してみてください。
さらに多くのテスト例と結果を提供することを歓迎します
------解決策------------------
strtr
の文字列置換ソースコードを投稿します。 /* {{{ php_strtr */ PHPAPI char *php_strtr(char *str, int len, char *str_from, char *str_to, int trlen) { int i; unsigned char xlat[256]; if ((trlen