■文字列には、3つの書き方がある。
1.引用符「'(シングルクォーテーション)」
2.二重引用符「"(ダブルクォーテーション)」
3.ヒアドキュメント構文
1.引用符「'(シングルクォーテーション)」
▼結果
/demo/string_singlequotation.html
2.二重引用符「"(ダブルクォーテーション)」
▼結果
/demo/string_doublequotation.html
3.ヒアドキュメント構文
ヒアドキュメント(<<<)を使用すると、開始記号と終了記号の間に、複数行の文字を記述した場合、記述したとおりにプログラム処理を解釈してくれる。
ただし、開始の文字と終了の文字が同じである必要がある。
ちなみに、サンプルソースに記述してある「EOT」という文字列は、半角英語であれば、OK。
例えば、「EOL」など。※「END ONF LINE」=行末の意味。
なお、終了のEOTの文字列の存在する行にはEOT以外には何も記述してはいけない。EOFの左側にスペースやタブ等を記述してもエラーとなる。
長所:
・「"(ダブルクォート)」で囲まずに長文を書けるので、内部で「"(ダブルクォート)」が使える
(HTML書くのに便利なのは特にこの点。複雑なSQLを書くときに利用されることもある)
・ヒアドキュメント内部で変数の展開はされる。{}で囲む。例{$hoge}
短所:
・「EOL;」のような終わりを示す文字列を必ず行頭に書かなければならない
(インデントをきちんと書いているソースだとこれのせいで読みにくくなる)
・ヒアドキュメントの中でifやwhileなどのプログラムは書けない。これは、"(ダブルクォート)」で囲んだ文字列の中で変数展開はされるものの
ifやwhileなどのプログラムは書けない、ことと、同じ理屈に因るもの。
▽PHPのヒアドキュメント / 【超初心者のホームページ作成】
http://beginners.atompro.net/faqphp_heardoc.html
その他.文字列の文字単位(バイト単位)でのアクセス
「{ }(中括弧、波括弧)」を利用して、文字列中の単一文字にアクセスすることが可能
1.引用符「'(シングルクォーテーション)」
2.二重引用符「"(ダブルクォーテーション)」
3.ヒアドキュメント構文
1.引用符「'(シングルクォーテーション)」
$narita = 'TEST1';
$haneda = 'TEST2';
echo 'hello, AIR';//普通の出力
echo '
';
echo 'hello, "AIR"';//文字列内にある二重引用符は、特別な意味を持つわけではないのでそのまま出力
echo '
';
echo 'hello, I\'m a AIR';//引用符で囲まれた文字列内に引用符を書くと、そこが文字列の終わりと解釈されてしまう、それを避けるために、引用符の前に「\(バックスラッシュ(OSの設定によっては、円マーク))」を付ける。すると、「\'」は、文字列の「'」として出力される。この機能を「エスケープ」と言い、「\」を、「エスケープシーケンス」と言う。
echo '
';
echo 'hello, \ AIR \\';//引用符で囲まれた文字列内に「\」を出力する際、「\」の後ろに特別な意味を持つ記号や文字が来なければ、そのまま記述すれば出力されるが、「\」の後ろに「'」が来る場合は、「\\」のように連続して書く。
echo '
';
echo 'hello, AIR \r\n Good Bye';//引用符の中では変数は展開されず、そのまま\r\nと出力される。ちなみに、「\r」は「改行(キャリッジリターン)」、「\n」は「改行(ラインフィールド)」という意味を持った「エスケープシーケンス」
echo '
';
echo 'hello, AIR $narita $haneda';//引用符の中では変数は展開されず、文字列としてそのまま出力される
▼結果
/demo/string_singlequotation.html
2.二重引用符「"(ダブルクォーテーション)」
$narita = "TEST1";
$haneda = "TEST2";
echo "hello, AIR";
echo "
";
echo "hello, \"AIR\"";
echo "
";
echo "hello, I'm a AIR";
echo "
";
echo "hello, \ AIR \\";
echo "
";
echo "hello, AIR \r\n Good Bye";//ソース上で改行。ブラウザ上で改行とは異なる意
echo "
";
echo "hello, AIR $narita $haneda";//二重引用符内では、変数は展開される
echo "
";
echo "hello, AIR {$narita} {$haneda}";//文字列と変数名を明確に区別。推奨される書き方
echo "
";
echo "hello, AIR ${narita} ${haneda}";//文字列と変数名を明確に区別。推奨される書き方
▼結果
/demo/string_doublequotation.html
3.ヒアドキュメント構文
ヒアドキュメント(<<<)を使用すると、開始記号と終了記号の間に、複数行の文字を記述した場合、記述したとおりにプログラム処理を解釈してくれる。
ただし、開始の文字と終了の文字が同じである必要がある。
ちなみに、サンプルソースに記述してある「EOT」という文字列は、半角英語であれば、OK。
例えば、「EOL」など。※「END ONF LINE」=行末の意味。
なお、終了のEOTの文字列の存在する行にはEOT以外には何も記述してはいけない。EOFの左側にスペースやタブ等を記述してもエラーとなる。
長所:
・「"(ダブルクォート)」で囲まずに長文を書けるので、内部で「"(ダブルクォート)」が使える
(HTML書くのに便利なのは特にこの点。複雑なSQLを書くときに利用されることもある)
・ヒアドキュメント内部で変数の展開はされる。{}で囲む。例{$hoge}
短所:
・「EOL;」のような終わりを示す文字列を必ず行頭に書かなければならない
(インデントをきちんと書いているソースだとこれのせいで読みにくくなる)
・ヒアドキュメントの中でifやwhileなどのプログラムは書けない。これは、"(ダブルクォート)」で囲んだ文字列の中で変数展開はされるものの
ifやwhileなどのプログラムは書けない、ことと、同じ理屈に因るもの。
//変数に格納してから出力
$hode = <<< EOT
<em>NARITA 1</em>
<em>HANEDA 2</em>
EOT;
echo $hode;
//直接出力
echo <<< EOT
<em>NARITA 1</em>
<em>HANEDA 2</em>
EOT;
▽PHPのヒアドキュメント / 【超初心者のホームページ作成】
http://beginners.atompro.net/faqphp_heardoc.html
その他.文字列の文字単位(バイト単位)でのアクセス
「{ }(中括弧、波括弧)」を利用して、文字列中の単一文字にアクセスすることが可能
$air = "abcdefghijklmnopqrstuvwxyz";//変数へ文字列を格納
echo $air;
echo "
";
echo $air{0};//「その文字列の先頭から何バイト目の文字か」を、整数値で指定
echo "
";
echo $air{10};
echo "
";
$air{25} = "A";//「先頭から25バイト目の文字z」部分に、Aを格納
echo $air;