是否可以创建一个可以显示和返回的PHP函数?

时间:2017-05-22 11:18:39

标签: php function if-statement

是否可以创建一个既可以显示又可以返回的PHP函数(根据我的调用方式,每次只有一件事)?请看一下这个例子。

例如:

public function test_function(){
    echo "Hello"; // echo or anything......
}

如果我调用它test_function(),它应该显示“你好”; 如果我使用它,$name = test_function(); $name应该等于“你好”。

注意:我知道传递另一个参数并使用if条件我可以这样做。如果有类似的话,我正在寻找更快的方式。

3 个答案:

答案 0 :(得分:2)

没有。你应该回复'你好''并在必要时回复它。

function test_function() {
  return 'Hello';
}

$foo = test_function(); // $foo = 'Hello'
echo test_function(); // Prints 'Hello'

答案 1 :(得分:0)

不,你所建议的是不可能的。您已经知道了一些替代方案,但您无法做到这两点。如果您在同一个函数中尝试echoreturn,那么当您尝试在返回上下文中使用该函数时,您将获得意外结果。

最好的解决方案是在函数中返回一个值,然后回显。

function test_function() {
    return 'Hello';
}

echo test_function();

或者

function test_function( $echo = false ) {
    $value = 'Hello';

    if ( $echo ) {
        echo $value;
    } else {
        return $value;
    }
}

答案 2 :(得分:0)

ob_startob_get_clean有点可能,如下所示:

function test_function(){
    echo "Hello";
}

// Direct output
test_function();

echo PHP_EOL . '<br>-------<br>' . PHP_EOL;

// Catch output into variable
ob_start();
test_function();
$name = ob_get_clean();

echo "Name: " . $name;

输出:

  

你好   -------
  姓名:你好

看到它正在运行here

我想提一下:建议总是返回值并在需要时打印的答案可能是要走的路。