1

重複の可能性:
HEREDOC文字列内でPHP関数を呼び出す

関数の結果をヒアドキュメントの真ん中に挿入する必要があります。

$r = func1();
$s = func2();

echo <<<EOT

line1
$r
$s
line3
EOT;

コードをばかげているすべての関数を事前に評価する必要があるので、それを書くためのより良い方法があるかどうかはわかりません。

のようなものがあればもっと良いです。

echo <<<EOT

line1
{func1()}
{func2()}
line3
EOT;

もちろん、上記のコードは機能しませんが、私の考えを示したいだけです...

4

1 に答える 1

3

いいえ、それを行うためのより良い方法はありません。

ヒアドキュメントの文字列構文は、二重引用符の文字列構文とほとんど同じように動作します。ヒアドキュメントよりも、関数名を式として二重引用符で囲まれた文字列内に配置することはできません。だからあなたがしていることは大丈夫です、そしてそれはあなたがそれをしなければならない方法です。PHPで文字列構文内で補間を取得できるのは、値が変数の場合のみです。

例えば...

$foo = function() { return 'value'; };
echo <<<SOMEHEREDOC
{$foo()}
SOMEHEREDOC;
// Is the same as
echo "{$foo()}";
// Is the ssame as
$foo = 'strtoupper';
echo "{$foo('hello world')}";

上記のコードは次のように出力されます

価値

価値

こんにちは世界

于 2012-12-15T18:38:30.233 に答える