1

可能重复:
在 HEREDOC 字符串中调用 PHP 函数

我需要将函数的结果插入到heredoc的中间..

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

echo <<<EOT

line1
$r
$s
line3
EOT;

我不确定是否有更好的方法来编写它,因为我需要事先评估所有使代码变得愚蠢的函数。

如果有类似的东西更好..

echo <<<EOT

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

当然上面的代码是行不通的,只是想表达一下我的想法……

4

1 回答 1

3

不,没有更好的方法可以做到这一点。

Heredoc 字符串语法的行为很像双引号字符串语法。您不能将函数名称作为表达式放在双引号字符串中,就像您可以使用 heredoc 一样。所以你正在做的很好,这就是你应该做的。只有当值是变量时,才能在 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 回答