わかりました。私は本当に質問をどのようにフレーズするかわかりませんでしたが、私に説明しましょう。PHPはどのように変数に割り当てられた関数を実行しますか?
$file = dirname(__FILE__);
私は別の変数に$file
を割り当てた場合どうなりますか:
は、私は、変数があると?
$anotherVariable = $file;
dirname
機能は、私が割り当てるたびに実行されますでしょうか?
ありがとうございました。
わかりました。私は本当に質問をどのようにフレーズするかわかりませんでしたが、私に説明しましょう。PHPはどのように変数に割り当てられた関数を実行しますか?
$file = dirname(__FILE__);
私は別の変数に$file
を割り当てた場合どうなりますか:
は、私は、変数があると?
$anotherVariable = $file;
dirname
機能は、私が割り当てるたびに実行されますでしょうか?
ありがとうございました。
いいえ、PHPは必須であるため、代入式の右辺はと評価され、結果は左辺に格納されます(単純でほとんど遍在するケースでは、左辺に名前が付けられた変数側)。
$a = $b; // Find the value of $b, and copy it into the value of $a
$a = 5 + 2; // Evaulate 5 + 2 to get 7, and store this in $a
$a = funcName(); // Evaluate funcName, which is equivalent to executing the code and obtaining the return value. Copy this value into $a
あなたが参照して割り当てるときにこれは($ A = & $ b)はもう少し複雑になりますが、私たちは今のところ心配する必要はありません。
PHPにはこのようなクロージャがありません。
DIRNAME(FILE)
この関数は、文字列を返します。
$ anotherVariable = $ file;
は、同じ文字列値の$ anotherVariableを与えます。
私はあなたの質問に対する答えは「いいえ」と考えています。毎回実行されるわけではありません。
いずれにしても、
PHPの関数は、Java、ActionScript、JavaScriptなどで見られるように、Functionクラスのインスタンスを指す識別子ではありません。そのため、関数自体へのリンクを変数に格納することはできません。そのため、あなたが実行するスクリプトをinclude()するのと同じように、関数を呼び出すときはいつも同じです。確かに違いがありますが、include()と関数の呼び出しを含むこの質問の文脈では、ほとんど同じです。
は
function myFunc() {return 'hello world';}
$func = 'myFunc';
$a = $func();
echo $a; // hello world
読むこの場合と混同してはいけない。この場合hereについてこの動作は、PHPのための特別です。他の言語についてはわかりません。これに似ていますが、私は一度も会ったことがありません。主な質問へ
$a = function(){ echo "Hello!"; };
$a();
回答:私は別の変数に$ファイルを割り当てる場合はどうなります
$file = dirname(__FILE__);
//means:
//"Evaluate/Execute function dirname() and store its return value in variable $file"
?
我々は通常の代入($anotherVariable = $file;
)の話をしている場合は、
それだけコピー$file
から$anotherVariable
両方に値は独立変数です。
割り当てるたびにdirname関数が実行されますか?
いいえ。実行は()
でのみ実行されるためです。いいえ()
=実行しません。
閉鎖は間違った用語かもしれませんが、PHP関数はファーストクラスの市民ではありません – catsby