php の文字列は、シングルクォートとダブルクオートでどれだけパフォーマンスに差があるのか。
背景 どんなライブラリを見ても、php の文字列はだいたいシングルクォートで定義されている。パフォーマンスに差があるのはわかるが、変数を入れ込みたいときに面倒になる。 '{$hoge}' と書いて実行して、間違いに気づきあとで "{$hoge}" に変更する... という作業を何度やったことか。個人的には "" で統一したい派なので実際にどれぐらいの差があるか測定してみたかった。 調べてみると 測定しているサイトがあった。なるほど大して変わらないらしい。 ただちょっと記事が古い。php は 7 で大分変ったので手法はそのまま使わせていただき実測してみることに php のシングルクォートはほんとうに早いのか http://takuya-1st.hatenablog.jp/entry/2013/09/10/221859 実測 コードは参考サイトから拝借させていただき、まんま同じコードを流します。 foreach (range(1,1000*1000) as $cnt ) { $str = '人は「考え方」を手に入れたとたん頭のよくなる生き物である'; } 結果がこれ。シングルクォート版は 46.3441ms ダブルクオート版を流します。 foreach (range(1,1000*1000) as $cnt ) { $str = "人は「考え方」を手に入れたとたん頭のよくなる生き物である"; } 結果がこれ。ダブルクオート版は 49.5017ms その差 3.1576ms 。 ちなみに、これは「シングルクォート版」と「ダブルクオート版」を交互に実行して、一番それっぽく差が出た数値を採用しました。 どういう事かというと、同じダブルクオート版を実行しただけでも誤差の範囲でこれぐらいのブレがあります。 49.01ms 47.0376ms 50.2956ms シングルクォート版だけでも、これぐらいのブレがでます。 48.038ms 49.675ms 49.3508ms...