PHP ヒアドキュメント
使った事あるけど実は細かい決まり事なんかをちゃんと把握してなかったので、今更だけどおさらいメモ。
ヒアドキュメントとは
PHP内にまとまった文章を直接記述し利用できるようにする方法。ヒアドキュメントの中はすべて文字列として扱われ、変数は展開される。
ヒアドキュメントの使い方
print <<< EOF
1行目
2行目
EOF;
上の「EOF」って書いた部分は、一番上の文字列と最後の文字列が同じであれば何でもいい。(これをIDって呼ぶんだって)開始IDと終端IDにはそれぞれ注意点がある。以下、PHPスクリプト講座:文字列の扱い -- そふぃのphp入門より引用。
- 開始IDの注意点
- 開始IDの前後に全角空白があるとIDはその空白も含めたものになる
- 開始IDの後ろにタブと半角スペースは入れられない。
- <<< とIDの間にはタブと半角スペースを入れられる。
- 開始IDの後ろにはコメントもつけられない。
- 終端IDの注意点
- 終端IDは必ず行頭に置かなくてはならない。
- 終端IDの行には「;」(セミコロン)以外置いてはならない。
- タブやスペースでのインデントもセミコロンの前後に空白を置くのもだめ
- コメントつけるのも却下
IDは英数字とアンダーバーのみ。但し数字が先頭にきてはダメ(CSSと一緒って覚える)。マニュアルの方には英数字とアンダーバーのみって書いてあるけど、上のそふぃのphp入門には日本語つまり平仮名や漢字なんかもID名に使えます。
って書いてある。(とりあえず「英数字が無難」って覚える。)
例えば。
こういう風にechoで書いてるのが・・・
echo "<ul>\n";
echo "<li><a href=\"" . $url . "\">" . $hoge . "</a></li>\n";
echo "</ul>\n";
スッキリする。
print <<< EOF
<ul>
<li><a href="$url">$hoge</a></li>
</ul>
EOF;
ヒアドキュメントは変数への代入もできる
$str = <<< EOF
1行目
2行目
EOF;
//出力する時
print $str;
出力する時の「print $str;」は「echo $str;」でも別に構わない。
その他もろもろ覚書
- 変数を波括弧{ }で括ると確実にこれは変数です!と認識してもらえる。
- ヒアドキュメントの中で配列変数は波括弧{ }で囲わないと使えない。
- 関数はヒアドキュメント内で使えないからどっか外で一旦変数に入れてやる。
- ヒアドキュメントの中で定数は置き換えられない(そのままの文字列)
参考にしたサイト
<< 正規表現 勉強メモ | 「お知らせ」が「更新情報」に派生した(2) >>
トラックバック
このエントリーのトラックバックURL:
http://redline.hippy.jp/cgi/mt/mt-tb.cgi/220
PHP ヒアドキュメント へのトラックバック一覧
» PHPのヒアドキュメント 送信元 日々是作譜
ヒアドキュメントとは、複数行の文章を直接記述し利用できるようにする方法で、ヒアドキュメントの中はすべて文字列として扱われ、変数は展開されます。
Trackback time : 2009.05.12