135

私は PHP で無名関数をいじっていましたが、それらが外部の変数に到達していないように見えることに気付きました。この問題を回避する方法はありますか?

例:

$variable = "nothing";

functionName($someArgument, function() {
  $variable = "something";
});

echo $variable;  //output: "nothing"

これにより、「何も出力されません」。匿名関数がアクセスできる方法はあります$variableか?

4

2 に答える 2

332

はい、クロージャを使用します:

functionName($someArgument, function() use(&$variable) {
  $variable = "something";
});

$variable匿名関数のスコープ外で変更された値を変更および取得できるようにするには、 を使用してクロージャで参照する必要があることに注意してください&

于 2012-07-10T19:31:42.297 に答える