読者です 読者をやめる 読者になる 読者になる

php でヒアドキュメントの変数を展開しない

ヒアドキュメントで js を書きたいときがあって、jQuery Object は prefix で $ をつけるようにしているので、 $hoge が展開されてしまって困った。
<<<'EOL' シングルクォートで囲むと変数が展開されないようになる。Newdoc というらしい。べんり。

<?php
$tako = "ika";
echo <<<EOL
$tako $tako
EOL;
// ika ika

echo <<<'EOL'
$tako $tako
EOL;
// $tako $tako

Nowdoc はヒアドキュメントと似ていますが、 ヒアドキュメントがダブルクォートで囲んだ文字列として扱われるのに対して、 Nowdoc はシングルクォートで囲んだ文字列として扱われます。 Nowdoc の使用方法はヒアドキュメントとほぼ同じですが、 その中身について パース処理を行いません。 PHP のコードや大量のテキストを埋め込む際に、 エスケープが不要になるので便利です。この機能は、SGML の (ブロック内のテキストをパースしないことを宣言する) と同じようなものです。

http://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc