我已经查看了 debug_backtrace 但到目前为止它并没有做我需要它做的事情。
我需要知道我正在调用的函数是“调用”还是“回显”。像这样:
function hello() {
//blah blah
}
echo hello(); //echo-ed
hello(); //'called'
但是,如果在“回声”上“调用”该函数,该函数会做不同的事情。
我该怎么做?
我很确定这是不可能的。这不起作用的原因是“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.
没有有效的方法来处理它
更新: 没有办法处理它:)
两个例子来帮助你理解。
function hello(){
return "Hello!";
}
echo hello(); // prints Hello!
function hello(){
echo "Hello!";
}
hello(); // prints Hello!