ファーストクラスの関数をサポートしている。関数を変数に代入できるってことだ。変数で参照したり動的に実行したりできる。何かの関数を別の関数の引数として渡すこともできるし、関数の返り値を別の関数にすることもできる(高階関数っていう機能)。機能としてサポートしている。コードはそれよりも逐次処理を重視している。クロージャをオブジェクトのスコープにバインドできるようになった。サポートも強化され、ほとんどの場合で無名関数と互換性を持つようになった。高階関数の最もよくある使いかたは、ストラテジーパターンの実装だ。配列の各要素に対してその関数をフィルターとして適用する。0;});print_r($output);クロージャは無名関数の一種で、外部のスコープからインポートした変数に対してグローバル変数を介さずにアクセスできる。クロージャを使えば、変数のスコープの制約をすっきりとした方法で回避できる。次の例では、クロージャを使って関数を定義する。用のフィルター関数を一つ返すものだ。3フィルター関数群の各関数は、何らかの最小値を上回る要素だけを通過させる。スコープ内で束縛されている。変数の値を関数にインポートするときに早期束縛を使う。遅延束縛を使った真のクロージャを使いたい場合は、インポートの際に参照を使わないといけない。テンプレート、あるいは入力バリデーションライブラリを考えてみよう。あとで無名関数が評価されたときにそれにアクセスすることになる。www.phptherightway.com.。