ホームページ >バックエンド開発 >PHPチュートリアル >PHPの匿名関数の使用
匿名関数の導入
匿名関数が登場する前は、すべての関数を使用する前に名前を付ける必要がありました
関数は 1 回だけ使用する必要がある場合があります。この場合、匿名関数を使用すると、コードがより簡潔かつ直感的になり、関数が他の関数で使用されるのを防ぐことができます。場所
(無料の学習ビデオ チュートリアルの共有: php ビデオ チュートリアル)
#匿名関数の定義と使用
PHP は終了します これらは、匿名関数 (この記事では総称して匿名関数と呼びます) と同等の概念として扱われ、本質的には関数に見せかけたオブジェクトです。 匿名関数の本質はオブジェクトであるため、オブジェクトと同じように、匿名関数も変数に割り当てることができます すべての匿名関数はクロージャ オブジェクト インスタンス#オブジェクトには親スコープがないため、使用する変数を手動で宣言するには use を使用する必要があります
#匿名関数の変数を有効にしたい場合は、値渡しによる参照を使用する必要があります。
PHP 5.4 以降、匿名関数を使用する場合は、クラス、匿名関数の $this は現在のクラスに自動的にバインドします
#自動バインディングを有効にしたくない場合は、静的メソッドを使用できます。匿名関数
匿名関数の本質
##匿名関数の本質は、次の 5 つのメソッドを含む Closure オブジェクトです
__construct - 匿名関数がインスタンス化されないようにします Closure::bindTo - 現在の匿名関数オブジェクトをコピーし、バインディングします指定された $this オブジェクトとクラス スコープ。平たく言えば、匿名関数を指定したオブジェクトに手動でバインドすることを意味し、これを使用してオブジェクトの機能を拡張できます。 Closure::bind - bindingTo メソッドの静的バージョンで、2 つの使用法があります:使用法 1:bindTo と同じ効果を実現するにはメソッド
使用法 2: 匿名関数を (オブジェクトではなく) クラスにバインドします。2 番目のパラメーターを null に設定することを忘れないでくださいcall - PHP 7 の新しい call メソッドは、匿名関数をバインドして呼び出すことができます。構文が単純になっただけでなく、パフォーマンスも向上しました。 fromCallable -特定の呼び出し可能な関数が匿名関数に変換される
##fromCallable は
# と同等です。ここでは特に注意が必要です。Callable から変換されたクロージャであっても、リフレクションを使用して取得されたクロージャであっても、bindTo を使用する場合、2 番目のパラメータがバインディング クラスを指定している場合、エラーが報告されます
おすすめの関連記事チュートリアル: php チュートリアル
以上がPHPの匿名関数の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。