PHPで文字列を扱う際、その文字列をクォーテーションと呼ばれる記号で囲む必要がありますよね。
クォーテーションには、‘(シングルクォーテーション)と“(ダブルクォーテーション)の2種類があります。
<?php
echo 'こんにちは!';
echo "こんにちは!";
?>
- ‘シングルクォーテーション’(Shift + 7)
- “ダブルクォーテーション”(Shift + 2)
「どっちを使えばいいんだ!」
この2つのクォーテーション、ちょっとした文字列を扱う分には違いはありません。
しかし恐らく、思っている以上に違います。
一体何が違って、どちらを使うべきなのでしょうか?
サンプルコードの使い方
コード右上のアイコンをクリックすることでコピーできます。

それでは本文へ、レッツゴー!
ダブルクォーテーション内では変数を使うことができる
一つ目の違いは、ダブルクォーテーションに軍配があがります。
ダブルクォーテーション内では、変数を用いることができます。
変数を用いる際は {$変数名} と記述して使います。
シングルクォーテーションで変数を使うとどうなっちゃうのでしょうか!?
実際にコピペして見てみましょう!
<?php
$name = 'World';
// ダブルクォーテーション
echo "こんにちは {$name} さん!<br>";
// シングルクォーテーション
echo 'こんにちは {$name} さん!<br>';
?>
いちいち自分でコピペするのがめんどくさい方のために結果も紹介しておきますね!
- ダブルクォーテーションの場合
こんにちは World さん! - シングルクォーテーションの場合
こんにちは {$name} さん!
シングルクォーテーション内で変数を使っても、「{$変数名}」がそのままテキストとして出力されてしまいます。
シングルクォーテーション使うけど変数も使いたい!
そんなあなたに朗報です!
シングルクォーテーション内で変数を使うことはできませんが、シングルクォーテーションで囲んだテキストと変数を結合させることができます。
結合には.(ドット)を使います。
<?php
$name = 'World';
// 文字列と変数を連結
echo 'こんにちは '. $name. ' さん!<br>';
?>
こんにちは World さん!
シングルクォーテーションと変数、この混ざり合わない水と油のような関係の2人を、僕たちだけが、ドットを使って繋ぐことができます。
ダブルクォーテーション内ではエスケープシーケンスを使うことができる
うわあ見出しが長い!
またまたダブルクォーテーションに軍配があがりました。
ダブルクォーテーション内ではエスケープシーケンスを使うことができます。
エスケープシーケンスとは、\n(改行)とかいろいろあつやつです!
それでは、先ほどの変数のサンプルコードに「\n」を加えてみます。
<?php
$name = 'World';
// ダブルクォーテーション
echo "こんにちは \n{$name} さん!<br>";
// シングルクォーテーション
echo 'こんにちは \n{$name} さん!<br>';
?>
またまた結果も出しておきます。
- ダブルクォーテーションの場合
こんにちは World さん! - シングルクォーテーションの場合
こんにちは \n{$name} さん!
シングルクォーテーションの方はもう異星人に挨拶している状態になっていますね。
ここまできてダブルクォーテーションに白星が2つつきました。
シングルクォーテーションに勝ち目はあるのでしょうか?
少し余談になってしまいますが、
「ダブルクォーテーションの方改行されてないじゃん!」
と思った方は鋭い!思わなかった方もついでに鋭い!
\nはブラウザで改行を反映するためのものではないので、改行されません。
ブラウザで改行させたい場合は普通に<br>を使います。
実はシングルクォーテーションの方が読み込みが早い
ここに来てシングルクォーテーションに初の白星。
変数もエスケープシーケンスも丁寧に処理していくダブルクォーテーションとは違い、何が来ようと全てを文字列に帰すシングルクォーテーションの方が、読み込みが早くなるらしいです。
らしいです。と書いてしまってごめんなさい。
実際のところ、体感で得られるほどの違いはありません。
「なんだこれおっせーな。げ!全部ダブルクォーテーションじゃん!」
なんて経験もありません。
なので「らしい」と表記させてもらいました。
どっちのクォーテーションを使うべきなの?
さて、それではどちらを使うのがベストなのでしょうか?
基本はシングルクォーテーションを使い、
必要に応じてダブルクォーテーションを使う。
これがベストで、またこのパターンを一番多く見かけます。
ただ最初のうちは、いちいち使い分けるのは大変だし、頭がこんがらがるかと思います。
怒られるの承知で、言わせてください。
PHPに慣れるまでは、迷うくらいならとりあえずダブルクォーテーションだけ使っといてもいいと思います。
たかだかクォーテーションの選択に思考や時間を割くのはもったいないですし、PHPの学習を進めていく上で、自然と使い分けができるようになっていくはずです。
今日もあなたが夢に向かって一歩前進できていますように。
お疲れ様でした。