上級 › クロージャの use($var) は値をコピーする(参照ではない) › パターン5
クロージャの use($var) は値をコピーする(参照ではない)
無名関数でuse($var)と書くと、その時点の$varの値がコピーされてクロージャに閉じ込められます。
1 <?php 2 $stock = 50; 3 $sell = function($n) use (__________) { ^ 4 $stock -= $n; 5 return $stock; 6 }; 7 echo $sell(10); 8 echo "\n" . $stock;
出力: 40
50期待:
40
40 (エラーにはなりません)
空欄を埋めて実行を通す
use ($stock)は値のコピーなので、クロージャの中で引き算しても外側の$stockは減りません。
次の問題