目次
ヒアドキュメント/ナウドキュメント
あわせて読みたい


PHP ヒアドキュメント/ナウドキュメント
ヒアドキュメント/ナウドキュメント https://lifeanddigital.net/mysite/php_basic/1180-heredocument/ph1180-heredocument.php <?php // http://localhost/mysite/...
<?php
// http://localhost/mysite/php_basic/1180-heredocument/ph1180-heredocument.php
// https://lifeanddigital.net/mysite/php_basic/1180-heredocument/ph1180-heredocument.php
function know_heredocument() {
echo <<< _HEREDOC_
<h2>ヒアドキュメントについて</h2>
<pre>
「ヒアドキュメント」は長い文章やHTMLコードの出力する構文です。
これは、「<<<」に続いて任意の終端ワードを指定し
次に終端ワードが出てきたところまでを文字列と指定することができます。
これは次のような書式で記述します。
[ヒアドキュメントの書式]
echo <<< 終端ワード
...ここに文字列...
...ここに文字列...
終端ワード;
このソースコードではヒアドキュメントの終端ワードに「_HEREDOC_」という記号を使って
文章を表示しています。
</pre>
_HEREDOC_;
}
function learn_heredocument() {
# 説明文の表示
echo <<<_HERDOC_
<h2>ヒアドキュメントの変数</h2>
<pre>
ヒアドキュメントは、二重引用符の文字列のと同じ意味を持ちます。
そのため、変数の展開なども行われます。
ヒアドキュメントは、変数に文字列を代入することもできます。
</pre>
_HERDOC_;
echo <<< '_NOWDOC_'
<h2>ナウドキュメントの変数</h2>
<pre>
文字列の変数展開がない。(単一引用符と同じ動作を表す)
変数を表す「$」やエスケープ文字をなどを含む長文を 表示したいときに便利です。
Nowdoc構文は、PHP5.3.0以降で利用可能です。
</pre>
_NOWDOC_;
# 変数に文字列と数値を代入
$name = "lifeplan";
$age = 18;
# ヒアドキュメントを、変数に文字列を代入
$body = <<< END_OF_DATA
<pre>
変数に文字列を代入する例
name:$name
age = $age
</pre>
END_OF_DATA;
# ヒアドキュメントを格納した変数を出力
echo $body;
}
function heredocument_form() {
echo "<h2>FROMの表示</h2>" ;
echo <<< _FORM_
<form action="$_SERVER[SCRIPT_NAME]" method="GET">
<input type="text" name="username" />
<input type="submit" value="送信" />
</form>
_FORM_;
}
function heredocument_table() {
echo "<h2>TEABLEの表示</h2>" ;
echo <<< _TABLE_
<table border="1">
<thead>
<tr><th>項目</th><th>print関数</th><th>echo文</th></tr>
</thead>
<tbody>
<tr><th>種類</th><th>関数</th><th>構文</th></tr>
<tr><th>引数</th><th>1</th><th>複数</th></tr>
<tr><th>文字の結合</th><th> . で連結して1引数にする</th><th> , で引数入力</th></tr>
<tr><th>" "表記</th><th>式を評価する</th><th>式を評価する</th></tr>
<tr><th>' '表記</th><th>式を評価しない</th><th>式を評価しない</th></tr>
</tobdy>
</table>
_TABLE_;
}
if (realpath($_SERVER["SCRIPT_FILENAME"]) == realpath(__FILE__)) {
header("Cache-Control: no-cache, must-revalidate");
header('Content-Type: text/html; charset=UTF-8');
header('Content-Language: ja');
echo '<link rel="stylesheet" type="text/css" href="../../css/style.css" />' ;
know_heredocument();
learn_heredocument() ;
heredocument_table() ;
heredocument_form() ;
}
?>
