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

Sat*_*000 2 php function output-buffering variable-assignment

我试图获取函数的回声并将值添加到变量中.

所以这就是我所做的.

function myfunction() {
   echo 'myvar';
}
Run Code Online (Sandbox Code Playgroud)

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

$myVariable = myfunction();
Run Code Online (Sandbox Code Playgroud)

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

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

Riz*_*123 6

您可以调用该功能,同时打开输出缓冲,然后您可以捕获输出.例如

<?php

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

    echo $variable;

?>
Run Code Online (Sandbox Code Playgroud)

输出:

myvar
Run Code Online (Sandbox Code Playgroud)

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


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

$variable = myfunction();
var_dump($variable);
Run Code Online (Sandbox Code Playgroud)

输出:

NULL
Run Code Online (Sandbox Code Playgroud)