13,230
回編集
細 (文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag…) |
|||
| 77行目: | 77行目: | ||
* echo文は値を返さない。 | * echo文は値を返さない。 | ||
* echo文は複数の引数を受け付けられるため、変数を多数表示する必要がある場合はecho文の方が記述しやすく、可読性も高くなる。 | * echo文は複数の引数を受け付けられるため、変数を多数表示する必要がある場合はecho文の方が記述しやすく、可読性も高くなる。 | ||
<br> | |||
==== ヒアドキュメント ==== | |||
ヒアドキュメントを活用することにより、長い文字列やテンプレートを見やすく管理することができる。<br> | |||
<br> | |||
ヒアドキュメントの特徴を以下に示す。<br> | |||
* 開始識別子 (EOT等) の後には改行以外の文字を入れてはならない。 | |||
* 終了識別子は行頭になければならない。<br><u>ただし、PHP 7.3以降は可能</u> | |||
* 識別子は任意の文字列を使用可能。(EOT, EOD, HTML等) | |||
* <u><<<'EOT'</u> のように引用符で囲むとNowdocとなり、変数展開されない。 | |||
* PHP 7.3以降では終了識別子のインデントが可能。 | |||
* 文字列結合や関数の引数としても使用可能である。 | |||
<br> | |||
よく使用されるユースケースを以下に示す。<br> | |||
* HTMLテンプレート | |||
* SQLクエリ | |||
* メールテンプレート | |||
* JSONデータ | |||
* 設定ファイル | |||
<br> | |||
<syntaxhighlight lang="php"> | |||
<?php | |||
// 基本的な使用方法 1 | |||
echo <<<DATA | |||
<!DOCTYPE html> | |||
<html lang="ja"> | |||
<head> | |||
<meta charset="utf-8"> | |||
<title>ヒアドキュメントの基礎</title> | |||
</head> | |||
<body> | |||
<header></header> | |||
<main> | |||
<h1>PHPをHTMLの中に埋め込む</h1> | |||
<p>ヒアドキュメントで出力したHTMLファイル</p> | |||
</main> | |||
<footer></footer> | |||
</body> | |||
</html> | |||
DATA; | |||
?> | |||
<?php | |||
// 基本的な使用方法 2 | |||
$name = "太郎"; | |||
$text = <<<EOT | |||
こんにちは、{$name}さん。 | |||
これはヒアドキュメントのサンプルである。 | |||
複数行の文字列を簡単に記述することができる。 | |||
EOT; | |||
?> | |||
<?php | |||
// Nowdocの例(変数展開されない) | |||
$text2 = <<<'EOD' | |||
こんにちは、{$name}さん。 | |||
この中では変数は展開されない。 | |||
そのまま {$name} と表示される。 | |||
EOD; | |||
?> | |||
<?php | |||
// インデントを保持する例 (PHP 7.3以降) | |||
$html = <<<HTML | |||
<div class="container"> | |||
<h1>タイトル</h1> | |||
<p>これは段落である。</p> | |||
</div> | |||
HTML; | |||
?> | |||
<?php | |||
// 関数の引数として直接使用 | |||
// json_encodeは関数である | |||
echo json_encode([ | |||
'description' => <<<JSON | |||
これは | |||
JSON形式の | |||
長い説明文である。 | |||
JSON, | |||
'title' => 'サンプル' | |||
]); | |||
?> | |||
<?php | |||
// メソッドチェーンでの使用 (PHP 7.3以降) | |||
$message = (new EmailMessage()) | |||
->setBody(<<<EMAIL | |||
お問い合わせありがとうございます。 | |||
以下の内容で承りました。 | |||
件名: {$subject} | |||
EMAIL) | |||
->setSubject('自動返信メール'); | |||
?> | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||