[英]Tell How Function was called
我看過debug_backtrace,但到目前為止,它並沒有滿足我的要求。
我需要知道我正在調用的函數是“被調用”還是“回顯”。 像這樣:
function hello() {
//blah blah
}
echo hello(); //echo-ed
hello(); //'called'
但是,如果在“回顯”之后“調用”該函數,則它將執行不同的操作。
我該怎么做?
我很確定這是不可能的。 這樣做不起作用的原因是“ echo”或任何其他運算符,函數或變量賦值使用了您已調用函數的返回值 。 因此,如果您具有以下條件:
echo function1();
發生的情況是function1被執行,並將返回值傳遞給echo。 因此,function1可能無法知道其返回值將被“回顯”,因為到發生這種情況時,function1()已被調用並完成執行。
沒有有效的方法來處理
更新: 沒有辦法解決:)
兩個例子可以幫助您理解。
function hello(){
return "Hello!";
}
echo hello(); // prints Hello!
function hello(){
echo "Hello!";
}
hello(); // prints Hello!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.