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スタイルを反転させる必要があります。それは悪いことではありませんが、それは私の慣性を説明します。
Text {$string1} Text {$string2} Text
ヒアドキュメントのようなものを使用できます。