有没有办法不返回PHP函数打印的值?

有没有办法不返回PHP函数打印的值?,php,function,Php,Function,我基本上有两个与此相关的问题: 考虑类中的以下PHP函数,例如xyz.PHP function sendResponse(){ $car="Lambo"; echo $car; } function sendResponseTwo(){ $car="Lambo"; echo $car; return $car; } function getResponse(){ //case 1: $carName=$this->sendRespon

我基本上有两个与此相关的问题:

考虑类中的以下PHP函数,例如xyz.PHP

function sendResponse(){
    $car="Lambo";
    echo $car;
}
function sendResponseTwo(){
    $car="Lambo";
    echo $car;
    return $car;
}
function getResponse(){
    //case 1:
    $carName=$this->sendResponse();
    //ABOVE WON'T WORK AS THE FUNCTION RETURNS NOTHING.

    //case 2:
    $carName=$this->sendResponseTwo();
    //THIS WILL PRINT THE NAME OF CAR
}
  • 在案例1中,是否有任何方法可以通过调用另一个函数中的函数而不使用return语句来获取回显值

  • 在案例2中,是否有方法停止echo语句打印的值(我只需要返回值)


  • 您需要使用输出缓冲:

    ob_start();
    $foo->sendResponse();
    $response = ob_get_clean();
    
    这就是为什么它最初不是一个实用的设计。如果您使函数始终返回值,则按照您的喜好执行这两项操作是很简单的:

    $response=$foo->sendResponse();
    
    echo$foo->sendResponse();
    
    
    

    (最后一个选项是为了演示而共享的,并不打算就短开放标签展开激烈的战争。)

    您需要使用输出缓冲:

    ob_start();
    $foo->sendResponse();
    $response = ob_get_clean();
    
    这就是为什么它最初不是一个实用的设计。如果您使函数始终返回值,则按照您的喜好执行这两项操作是很简单的:

    $response=$foo->sendResponse();
    
    echo$foo->sendResponse();
    
    
    

    (最后一个选项仅用于说明,并不打算就短开放标签展开激烈的战争。)

    回答您的两个问题,问题在于
    输出缓冲区(ob)
    ,希望这将有助于您理解。在这里,我们使用三个函数
    ob_start()
    将启动输出缓冲区,
    ob_end_clean()
    将清理缓冲区的输出,
    ob_get_contents
    将以字符串的形式输出,直到现在仍在回响。将帮助您更好地理解
    ob\u get\u内容


    这两个问题的答案在于
    输出缓冲区(ob)
    ,希望这能帮助您理解。在这里,我们使用三个函数
    ob_start()
    将启动输出缓冲区,
    ob_end_clean()
    将清理缓冲区的输出,
    ob_get_contents
    将以字符串的形式输出,直到现在仍在回响。将帮助您更好地理解
    ob\u get\u内容


    输出缓冲。那是什么。有链接吗?试试这些吧,不要搞得一团糟,你只是让函数返回东西而不是打印它们?输出缓冲。那是什么。有链接吗?试试这些吧,不要搞得乱七八糟,你只是让函数返回东西而不是打印它们?