PHPでの文字列の扱い
"文字列" ダブルクォーテーション
'文字列' シングルクォーテーション
<<< EOD
文字列
EOD; ヒアドキュメント
"文字列" ダブルクォーテーション
'文字列' シングルクォーテーション
<<< EOD
文字列
EOD; ヒアドキュメント
PHPで文字列を扱う時は、ダブルクォーテーション・シングルクォーテーション・ヒアドキュメントを利用します。
それぞれ、使い方が異なります。これらを使い分けて利用します。
「"文字列"」ダブルクォーテーションの特徴
<?php
$a = "あいうえお";
print "$a";
?>
この場合は「あいうえお」と出力されます。
<?php
$a = "あいうえお";
print "$a";
?>
この場合は「あいうえお」と出力されます。
つまり、ダブルクォーテーションでは変数やエスケープシーケンスが展開されます。例えば「¥n」はソース上の改行が適応され「¥"」はダブルクォーテーションを表示します。(ダブルクォーテーションの中にダブルクォーテーションは入れられないのでエスケープシーケンスを使います。)
「'文字列'」シングルクォーテーションの特徴
<?php
$a = "あいうえお";
print '$a';
?>
この場合は「$a」と出力されます。
<?php
$a = "あいうえお";
print '$a';
?>
この場合は「$a」と出力されます。
つまり、シングルクォーテーションでは、変数などは展開されません。シングルクォーテーションの中にシングルクォーテーションを入れる事はできません。エスケープシーケンスは「¥'」と「¥¥」のみ使えます。
ヒアドキュメントの特徴
<?php
$a = "サンプル";
$b = <<< EOD
"文字列"<br>
'文字列'<br>
{$a}<br>
EOD;
?>
この場合は
"文字列"
'文字列'
サンプル
と出力されます。
<?php
$a = "サンプル";
$b = <<< EOD
"文字列"<br>
'文字列'<br>
{$a}<br>
EOD;
?>
この場合は
"文字列"
'文字列'
サンプル
と出力されます。
このようにヒアドキュメントではダブルクォーテーション・シングルクォーテーションがそのまま使えます。また変数やエスケープシーケンスは展開されます。どの文字列の書き方にも当てはまりますが、HTMLタグは文字列として扱われます。「変数」の部分で紹介しますが文字列の中の変数を書くときには決まりがあるので注意が必要です。上の例では変数を{$a}と記述しました。「$a<br>」と記述すると「$a<br>」を変数として認識してしまう為です。ここは変数の項目で詳しく説明します。