Closure クラス

(PHP 5 >= 5.3.0, PHP 7)

はじめに

無名関数 を表すために使うクラスです。

無名関数は PHP 5.3 で実装された機能で、この型のオブジェクトを生成します。 かつてこれは、内部実装がたまたまそうなっているだけという扱いでした。 しかし今では、この事実を前提として考慮してもかまいません。 PHP 5.4 以降ではこのクラスにメソッドが用意され、 生成した無名関数をさらにコントロールできるようになります。

ここであげたメソッド以外にも、このクラスには __invoke メソッドが存在します。 これは、マジックコール を実装した他のクラスとの一貫性を保つためのものであり、 関数をコールするときにこのメソッドは使われません。

クラス概要

Closure {
/* メソッド */
private __construct ( void )
public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure
public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure
public call ( object $newthis [, mixed $... ] ) : mixed
public static fromCallable ( callable $callable ) : Closure
}

目次

  • Closure::__construct — インスタンス作成を無効化したコンストラクタ
  • Closure::bind — バインドされたオブジェクトとクラスのスコープでクロージャを複製する
  • Closure::bindTo — 新しくバインドしたオブジェクトとクラスのスコープで、クロージャを複製する
  • Closure::call — クロージャを束縛して呼び出す
  • Closure::fromCallable — callable をクロージャに変換する