2018/12/30 php,無名関数、クロージャー、など パート2

次にクロージャについて。

クロージャとは、関数Aの宣言内で、関数Aの返り値として無名関数Bを返す。

そして外側関数Aを実行した返り値(無名関数)を変数に代入する。つまりラムダ関数。

クロージャは、変数の値として使用することもできます。 PHP は、そのような記述があると自動的に内部クラスClosure のインスタンスに変換します。

http://php.net/manual/ja/functions.anonymous.php

具体例として

https://qiita.com/tricogimmick/items/3e344486658e3cfbd407


function create_counter()
{
    $count = 0;
    return function() use (&$count) {
        return ++$count;
    };
}

$counter = create_counter();
echo $counter