如何将函数调用的echo语句赋值给变量?

时间:2015-05-31 19:24:30

标签: php function variable-assignment output-buffering

我正在尝试获取函数的回显并将值添加到变量中。

所以这就是我所做的。

function myfunction() {
   echo 'myvar';
}

然后我想把它变成这样的变量:

$myVariable = myfunction();

我认为这会奏效,但我还没有工作。

这不是这样做的方法吗?如果没有,我该怎么做?

1 个答案:

答案 0 :(得分:6)

您可以在启用output buffering的同时调用该功能,然后您可以捕获输出。 E.g。

<?php

    ob_start();
    myfunction();
    $variable = ob_get_contents();
    ob_end_clean();

    echo $variable;

?>

输出:

myvar

或者您只需将echo语句更改为return语句。

您当前的版本不起作用,因为您没有从函数返回值。由于您省略了return语句,因此返回值NULL并将其赋值给您的变量。你可以这样做:

$variable = myfunction();
var_dump($variable);

输出:

NULL