tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

クロージャでカウンターを実装する @PHP

<?php

function counter($count_size) {
  $size = $count_size;
  $i = 0;
  return function() use (&$i, $size) {
    $i++;
    print "$i / $size";
    print PHP_EOL;
  };
}
$counter = counter(1000);

for ($i = 0; $i < 1000; $i++) {
  $counter();
}

結果:

1 / 1000
2 / 1000
・・・
1000 / 1000