debug_backtrace を見てきましたが、これまでのところ、必要なことを実行していません。
呼び出している関数が「呼び出された」か「エコーされた」かを知る必要があります。このような:
function hello() {
//blah blah
}
echo hello(); //echo-ed
hello(); //'called'
しかし、関数が「エコーされた」上で「呼び出された」場合、関数は異なることを行います。
どうすればいいですか?
これは不可能だと確信しています。これが機能しない理由は、「echo」またはその他の演算子、関数、または変数の割り当てが、呼び出した関数の戻り値を使用するためです。したがって、次のものがあれば:
echo function1();
function1 が実行され、戻り値が echo に渡されます。したがって、function1 は、その戻り値が「エコー」されることを認識できない可能性があります。これが発生するまでに、function1() は既に呼び出され、実行が終了しているためです。
有効な対処法がない
更新:対処する方法 はありません:)
理解を助けるために 2 つの例を示します。
function hello(){
return "Hello!";
}
echo hello(); // prints Hello!
function hello(){
echo "Hello!";
}
hello(); // prints Hello!