PHPのダブルクォーテーション、シングルクォーテーションの動作速度の違いを検証してみる

PHPで文字列として変数に値を入れる場合、ダブルクォーテーションかシングルクォーテーションのどちらかで囲むのが一般的だと思います。

一応それぞれの違いとしては、

  • ダブルクォーテーションは値に変数を入れた場合、その変数の内容が展開される。
  • シングルクォーテーションは変数は変換されず、そのまま文字列となる。

と認識してます。

で、当然ダブルクォーテーションのほうが、変換する過程を挟むわけで、処理時間が多少なりともシングルクォーテーションよりかかると思ったので検証してみました。

検証(ダブルクォーテーション)

ダブルクォーテーション」で下記コードを実行した場合の時間を計測
スペックはさくらのVPS(1G)です。(このサーバー)

for($i=0;$i<1000000;$i++){
  $a = "{$i}";
}
試行回数 100回
平均 0.2512357秒

検証(シングルクォーテーション)

シングルクォーテーション」で下記コードを実行した場合の時間を計測

for($i=0;$i<1000000;$i++){
  $a = '{$i}';
}
試行回数 100回
平均 0.05184982秒

比較/結論

ダブルクォーテーション 0.2512357秒
シングルクォーテーション 0.05184982秒

ダブルクォーテーションのほうが5倍ほど処理に時間がかかるようです。
一回あたりは恐らく人の体感できるものではないかもしれませんが、
ループ処理で大量のデータを取り扱う場合は結構差が出そうです。

ちゃんと使い分けしたほうが良さそうです。
まあ、単一の処理はまあぶっちゃけそんな気にしなくていいと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする