ホームページ  >  記事  >  バックエンド開発  >  PHPの匿名関数の使用

PHPの匿名関数の使用

王林
王林転載
2020-01-23 18:26:433449ブラウズ

PHPの匿名関数の使用

匿名関数の導入

匿名関数が登場する前は、すべての関数を使用する前に名前を付ける必要がありました

PHPの匿名関数の使用

関数は 1 回だけ使用する必要がある場合があります。この場合、匿名関数を使用すると、コードがより簡潔かつ直感的になり、関数が他の関数で使用されるのを防ぐことができます。場所

PHPの匿名関数の使用

(無料の学習ビデオ チュートリアルの共有: php ビデオ チュートリアル)

#匿名関数の定義と使用

PHP は終了します これらは、匿名関数 (この記事では総称して匿名関数と呼びます) と同等の概念として扱われ、本質的には関数に見せかけたオブジェクトです。

匿名関数の本質はオブジェクトであるため、オブジェクトと同じように、匿名関数も変数に割り当てることができます

PHPの匿名関数の使用

すべての匿名関数はクロージャ オブジェクト インスタンス

PHPの匿名関数の使用#オブジェクトには親スコープがないため、使用する変数を手動で宣言するには use を使用する必要があります

#匿名関数の変数を有効にしたい場合は、値渡しによる参照を使用する必要があります。PHPの匿名関数の使用

PHP 5.4 以降、匿名関数を使用する場合は、クラス、匿名関数の $this は現在のクラスに自動的にバインドしますPHPの匿名関数の使用

#自動バインディングを有効にしたくない場合は、静的メソッドを使用できます。匿名関数PHPの匿名関数の使用

PHPの匿名関数の使用匿名関数の本質

##匿名関数の本質は、次の 5 つのメソッドを含む Closure オブジェクトです

__construct - 匿名関数がインスタンス化されないようにします

PHPの匿名関数の使用

Closure::bindTo - 現在の匿名関数オブジェクトをコピーし、バインディングします指定された $this オブジェクトとクラス スコープ。平たく言えば、匿名関数を指定したオブジェクトに手動でバインドすることを意味し、これを使用してオブジェクトの機能を拡張できます。

PHPの匿名関数の使用

Closure::bind - bindingTo メソッドの静的バージョンで、2 つの使用法があります:

PHPの匿名関数の使用使用法 1:bindTo と同じ効果を実現するにはメソッド

使用法 2: 匿名関数を (オブジェクトではなく) クラスにバインドします。2 番目のパラメーターを null に設定することを忘れないでください

PHPの匿名関数の使用

call - PHP 7 の新しい call メソッドは、匿名関数をバインドして呼び出すことができます。構文が単純になっただけでなく、パフォーマンスも向上しました。

PHPの匿名関数の使用

fromCallable -特定の呼び出し可能な関数が匿名関数に変換される

PHPの匿名関数の使用

##fromCallable は

PHPの匿名関数の使用

# と同等です。ここでは特に注意が必要です。Callable から変換されたクロージャであっても、リフレクションを使用して取得されたクロージャであっても、bindTo を使用する場合、2 番目のパラメータがバインディング クラスを指定している場合、エラーが報告されます

PHPの匿名関数の使用

おすすめの関連記事チュートリアル: php チュートリアル

以上がPHPの匿名関数の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。