2

debug_backtrace を見てきましたが、これまでのところ、必要なことを実行していません。

呼び出している関数が「呼び出された」か「エコーされた」かを知る必要があります。このような:

function hello() {
    //blah blah
}

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

しかし、関数が「エコーされた」上で「呼び出された」場合、関数は異なることを行います。

どうすればいいですか?

4

3 に答える 3

5

これは不可能だと確信しています。これが機能しない理由は、「echo」またはその他の演算子、関数、または変数の割り当てが、呼び出した関数の戻り値を使用するためです。したがって、次のものがあれば:

echo function1();

function1 が実行され、戻り値が echo に渡されます。したがって、function1 は、その戻り値が「エコー」されることを認識できない可能性があります。これが発生するまでに、function1() は既に呼び出され、実行が終了しているためです。

于 2011-01-23T21:53:56.507 に答える
1

有効な対処法がない

更新:対処する方法 はありません:)

于 2011-01-23T21:52:32.183 に答える
0

理解を助けるために 2 つの例を示します。

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


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