- 【PHP】下らねぇ質問はここに書き込みやがれ 2©2ch.net
861 :デフォルトの名無しさん[sage]:2015/10/23(金) 12:53:16.53 ID:pBHgjBfA - ちょっと前にphpの無名関数の話が出てたけど
useで持ってこれる親の変数はあくまで無名関数が定義されたときの変数の中身で そんで親の変数に対しての参照を持ってるわけじゃないから 例えば $counter=0; $func = function()use($counter){ ... ++$counter; ... }; とかしても func();で呼ばれたときに$counterはfunc()内では常に0で始まり、 親側の$counterもfunc()によって増減しないしfunc()定義後に親の$counterが動いてもfunc()内では常に0で始まる 親の変数を持ってくるだけならいいけど、親と共有したいなら静的変数やグローバルを使うかcallbackと無名関数を使わないでwhileで直接まわしたりする こういう挙動は、こういうものなの?、それともphpのコンパイラの都合?
|