- 追加された行はこの色です。
- 削除された行はこの色です。
- PHP/言語仕様/クロージャを使ったイテレータの実装 へ行く。
- PHP/言語仕様/クロージャを使ったイテレータの実装 の差分を削除
* クロージャを使ったイテレータの実装 [#r7b384f1] <?php function getIterator($vars) { $i = 0; $n = sizeof($vars); return function ($func) use ($vars, &$i, $n) { if ($i < $n) { return $func($vars[$i++]); } return false; }; } $it = getIterator(array(1,2,3,4,5)); while ($v = $it(function ($v) { return $v * 10; })) { if ($v === false) break; while (($v = $it(function ($v) { return $v * 10; })) !== false) { print "$v\n"; } 10 20 30 40 50