Code Fix

上級クロージャの use($var) は値をコピーする(参照ではない) › パターン2

クロージャの use($var) は値をコピーする(参照ではない)

無名関数でuse($var)と書くと、その時点の$varの値がコピーされてクロージャに閉じ込められます。

 1  <?php
 2  $counter = 0;
 3  $increment = function() use (____________) {
                                       ^
 4      $counter++;
 5      return $counter;
 6  };
 7  echo $increment();
 8  echo $increment();
 9  echo "\n" . $counter;
出力: 11 0期待: 12 2 (エラーにはなりません)

空欄を埋めて実行を通す

広告
広告スロット(未設定)

クロージャの use($var) は値をコピーする(参照ではない)

クロージャの中で変更しても、外側の変数には影響しません。外側の変数と連動させたい場合はuse(&$var)と参照で渡す必要があります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)