また、「"(ダブルクオート)」「'(シングルクオート)」の区別はありませんが、文字列を「"(ダブルクオート)」で囲った場合、文字列に「'(シングルクオート)」をエスケープなしで使うことができ、逆に、文字列を「'(シングルクオート)」で囲った場合、文字列に「"(ダブルクオート)」をエスケープなしで使うことができます。
JavaScriptの場合「"(ダブルクオート)」「'(シングルクオート)」の中の、文字列に変数を含めた場合は、変数を展開することができません。
<!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="disp"></div> <script type="text/javascript"> var str = "こんにちは"; var obj = document.getElementById("disp"); obj.innerHTML = str; //一行で書いた場合 //document.getElementById("disp").innerHTML = "こんにちは"; </script> </body> </html>
<!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="disp"></div> <script type="text/javascript"> var str = "こんにちは"; var disp = '<table border="1">\n'; disp += "<tr>\n"; disp += "<td>\n"; disp += str; disp += "</td>"; disp += "</tr>"; disp += "</table>" var obj = document.getElementById("disp"); obj.innerHTML = disp; </script> </body> </html>
すべてechoで出力。
<?php header("Content-type: text/html; charset=utf-8"); $str = "こんにちは"; echo "<html>\n"; echo "<head>\n"; echo "<title>HTML出力</title>\n"; echo "<body>\n"; echo $str ."\n"; echo "</body>\n"; echo "</html>"; ?>
出力部分のみHTML内に組み込む。
<?php header("Content-type: text/html; charset=utf-8"); $pen = 100; $note = 150; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>HTML出力</title> </head> <body> <table border="1"> <tr> <td>ボールペン</td> <td><?=$pen?>円</td> </tr> <tr> <td>ノート</td> <td><?=$note?>円</td> </tr> </table> </body> </html>
「"(ダブルクオート)」で文字列を囲った場合は{$変数}を展開しますが、「'(シングルクオート)」の時は展開しません。echoの後に、<<<を記述して、その中を終端ワードで囲んだものは「ヒアドキュメント」と呼ばれ、変数を展開することもできます。
<?php header("Content-type: text/html; charset=utf-8"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>HTML出力</title> </head> <body> <?php $str ="ヒアドキュメント"; echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "<td>\n"; echo "ここは{$str}を使っていません。"; echo "</td>"; echo "</tr>"; echo "</table>"; echo <<<EOT <table border="1"> <tr> <td> ここは{$str}を使っています。 </td> </tr> </table> EOT; ?> </body> </html>最初の終端ワードを「'(シングルクオート)」で囲んだものは「Nowdoc」と呼ばれ変数を展開することはできません。
$str ="Nowdoc"; echo <<<'EOT' <table border="1"> <tr> <td> ここは{$str}展開できません。 </td> </tr> </table> EOT; ?> </body> </html>