匿名関数内でグローバルスコープの変数を変更する 質問する

匿名関数内でグローバルスコープの変数を変更する 質問する

PHP で匿名関数をいじっていたところ、匿名関数が関数外の変数にアクセスできないことに気付きました。この問題を回避する方法はありますか?

例:

$variable = "nothing";

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

echo $variable;  //output: "nothing"

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

ベストアンサー1

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

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

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

おすすめ記事