PHP シングルクォートとダブルクォートの違い

シングルクォート(シングルコーテーション)とダブルクォート(ダブルコーテーション)の違い

PHPでのシングルクォートとダブルクォートの違いですが、今まであまり深く考えずに使用していました。

私の場合は日頃はプログラミングよりサーバー管理が主業務ですので、シェルスクリプトの時のような感じで、シングルクォートは文字だけの場合に使用。ダブルクォートは変数を使う場合って感じで使用しています。

きちんと調べずに使用してきたので少し調べてみました

文字列でのシングルクォート

シングルクォートを文字列内で使用した場合は、改行を含む場合もそのまま出力され、ダブルクォートを含む文字もエスケープ処理はいりません。但し、シングルクォートはバックスラッシュ でエスケープする必要があります。

シングルクォートでは変数を使用しても変数が展開されず文字列となります

文字列でのダブルクォート

文字列でのダブルクォートを使用する場合は、以下の文字の場合はエスケープが必要となります。またダブルクォートでは、変数を使用した場合は変数が展開されます

引用:PHP マニュアル(エスケープされた文字)

\n ラインフィード (LF またはアスキーの 0x0A (10))
\r キャリッジリターン (CR またはアスキーの 0x0D (13))
\t 水平タブ (HT またはアスキーの 0x09 (9))
\v 垂直タブ (VT またはアスキーの 0x0B (11)) (PHP 5.2.5 以降)
\e エスケープ (ESC あるいはアスキーの 0x1B (27)) (PHP 5.4.4 以降)
\f フォームフィード (FF またはアスキーの 0x0C (12)) (PHP 5.2.5 以降)
\\ バックスラッシュ
\$ ドル記号
\” 二重引用符

文字列でのヒアドキュメント

ヒアドキュメントはダブルクォートを使用しませんが、ダブルクォートで括られた文字列と全く同じ動作をおこないます

<<<」 がヒアドキュメントの合図で、この次に書いた文字が再度出現するまで、すべて出力されます。下記の場合はでは <<<EOMとなってますので、EOM;となっているまでの文字列が変数に代入されます

上記ダブルクォートで使ったサンプルをヒアドキュメントで出力した場合です。echo ダブルクォートで1行ずつ書くより見やすく簡単です

 

スポンサーリンク