我看过debug_backtrace,但到目前为止它没有做我需要它做的事情。
我需要知道我正在调用的函数是“被调用”还是“回显”。像这样:
function hello() {
//blah blah
}
echo hello(); //echo-ed
hello(); //'called'
但是,如果'echo'ed'被'调用',那么该函数会做不同的事情。
我该怎么做?
答案 0 :(得分:5)
我很确定这是不可能的。这不起作用的原因是“echo”或任何其他运算符,函数或变量赋值使用您调用的函数的返回值。所以,如果你有以下内容:
echo function1();
会发生什么,执行function1,并将返回值传递给echo。因此,function1不可能知道它的返回值将是“echo-ed”,因为在发生的时候,function1()已经被调用并且已经完成执行。
答案 1 :(得分:1)
没有有效的方法来处理它
<强>更新强> 有没有方式来处理它:)
答案 2 :(得分:0)
两个例子可以帮助您理解。
function hello(){
return "Hello!";
}
echo hello(); // prints Hello!
function hello(){
echo "Hello!";
}
hello(); // prints Hello!