4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【PHP】シングルクォーテーションとダブルクォーテーションの違い

Posted at

プログラミング勉強日記

2020年9月7日
シングルクォーテーションもダブルクォーテーションも同じ場面で使用するけど、実際にどんな違いがあるのかをまとめる。

特徴

 シングルクォーテーション:中身を文字列として扱う(変数や制御文字列もただの文字列として扱う)
 ダブルクォーテーション:中身を文字列として扱うが、変数や制御文字列はもともとの元として扱う
 
 シングルクォーテーションはすべて文字列として扱うので、シングルクォーテーションの方が速度が速い。

速度における違い

 以下のようにただの文字列を出力する場合は、出力される内容は同じ。

//ダブルクォーテーション
echo "Hello World";
echo '<br>';

//シングルクォーテーション
echo 'Hello World';
出力結果
Hello World
Hello World

 冒頭でも述べたが、動作処理速度は変数展開を用いる場合と変数の単純代入の場合、シングルクォーテーション>>ダブルクォーテーションである。(約1.2~2倍程度の差がある)
 しかし、文字列連結の場合と文字列比較の場合には速度の差はあまりない。

動作における違い

 冒頭に変数や制御文字列の扱いが異なると記述したが、具体例を用いて説明する。制御文字列は、改行(\n)や空文字(nil)といった文字以外の特別な制御を実行するために用いられる文字。
 以下の具体例のように、シングルクォーテーションの場合は、制御文字列や変数がそのまま文字列として出力されている。ダブルクォーテーションはそのまま変数の中身や制御文字列として出力されている。

$str = "World";

echo 'Hello $str';
echo "Hello $str";
echo "Hello {$str}";

echo 'Hello World\n';
echo "Hello World\n";
出力結果
Hello $str
Hello World
Hello World
Hello World\n
Hello World(表示上改行される)

まとめ

 システムとしてはわずかではあるが、シングルクォーテーションを使用した方が早くなる。(大規模なシステムの場合は大きい差になる)
 基本的にはシングルクォーテーションを使用して、必要な個所(変数展開など)のときにダブルクォーテーションを使うと良い。

参考文献

【PHP】’(シングルクォーテーション)と”(ダブルクォーテーション)はどちらを使うべきか(PHP高速化)
ダブルクォーテーション、シングルクォーテーションの違い

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?