在PHP heredoc中插入一个函数结果

时间:2012-12-15 18:17:07

标签: php

  

可能重复:
  Calling PHP functions within HEREDOC strings

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

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

echo <<<EOT

line1
$r
$s
line3
EOT;

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

如果有像......那样更好。

echo <<<EOT

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

当然上面的代码不起作用,但只是想表达我的想法......

1 个答案:

答案 0 :(得分:1)

不,没有更好的办法。

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')}";

上面的代码会输出

  

     

     

你好世界