告诉如何调用函数

Sco*_*ott 2 php debugging function backtrace

我看过debug_backtrace,但到目前为止它没有做我需要它做的事情.

我需要知道我正在调用的函数是"被叫"还是"回显".像这样:

function hello() {
    //blah blah
}

echo hello(); //echo-ed
hello(); //'called'
Run Code Online (Sandbox Code Playgroud)

但是,如果它被'echo-ed''调用',那么该函数会做不同的事情.

我该怎么办?

fre*_*oma 5

我很确定这是不可能的.这不起作用的原因是"echo"或任何其他运算符,函数或变量赋值使用您调用的函数的返回值.所以,如果你有以下内容:

echo function1();
Run Code Online (Sandbox Code Playgroud)

会发生什么是执行function1,并将返回值传递给echo.因此,function1不可能知道它的返回值将被"回显",因为在发生的时候,function1()已经被调用并且已经完成执行.