2

我已经查看了 debug_backtrace 但到目前为止它并没有做我需要它做的事情。

我需要知道我正在调用的函数是“调用”还是“回显”。像这样:

function hello() {
    //blah blah
}

echo hello(); //echo-ed
hello(); //'called'

但是,如果在“回声”上“调用”该函数,该函数会做不同的事情。

我该怎么做?

4

3 回答 3

5

我很确定这是不可能的。这不起作用的原因是“echo”或任何其他运算符、函数或变量赋值使用您调用的函数的返回值。因此,如果您有以下情况:

echo function1();

What happens is that function1 gets executed, and the return value is passed to echo. Therefor, function1 cannot possibly know that its return value is going to be "echo-ed", because by the time that happens, function1() has already been called and finished executing.

于 2011-01-23T21:53:56.507 回答
1

没有有效的方法来处理它

更新: 没有办法处理它:)

于 2011-01-23T21:52:32.183 回答
0

两个例子来帮助你理解。

function hello(){
  return "Hello!";
}
echo hello(); // prints Hello!


function hello(){
  echo "Hello!";
}
hello(); // prints Hello!
于 2011-01-23T21:52:29.293 回答