PHP では、HEREDOC 文字列宣言は、html のブロックを出力するのに非常に便利です。変数の前に $ を付けるだけで変数を解析できますが、より複雑な構文 ($var[2][3] など) の場合は、式を {} 中かっこで囲む必要があります。
PHP 5 では、HEREDOC 文字列内の {} 波括弧内で実際に関数呼び出しを行うことができますが、少し作業が必要です。関数名自体は変数に格納する必要があり、動的に名前が付けられた関数のように呼び出す必要があります。例えば:
$fn = 'testfunction';
function testfunction() { return 'ok'; }
$string = <<< heredoc
plain text and now a function: {$fn()}
heredoc;
ご覧のとおり、これは次のように少し面倒です。
$string = <<< heredoc
plain text and now a function: {testfunction()}
heredoc;
最初のコード例以外にも、HEREDOC から抜け出して関数を呼び出す方法や、問題を元に戻して次のような方法を実行する方法があります。
?>
<!-- directly output html and only breaking into php for the function -->
plain text and now a function: <?PHP print testfunction(); ?>
後者には、(出力バッファリングを使用していない限り) 出力が直接出力ストリームに入れられるという欠点があり、これは私が望むものではないかもしれません。
したがって、私の質問の本質は次のとおりです。これにアプローチするよりエレガントな方法はありますか?
回答に基づいて編集:確かに、ある種のテンプレート エンジンを使用すると私の作業がはるかに楽になるように思えますが、基本的に通常の PHP スタイルを逆にする必要があります。それは悪いことではありませんが、それは私の慣性を説明しています..私は人生を楽にする方法を考え出すつもりなので、今テンプレートを調べています.