web-dev-qa-db-ja.com

PHP無名関数の変数

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

例:

$variable = "nothing";

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

echo $variable;  //output: "nothing"

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

101
einord

はい、 クロージャを使用

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

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

236
nickb