ホームページ  >  記事  >  バックエンド開発  >  PHP Closureクラスのbind()とbindTo()を使用するにはどうすればよいですか?

PHP Closureクラスのbind()とbindTo()を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-10-17 09:30:131506ブラウズ

ClosureのbindとbindToの使用法についてはPHPマニュアルを参照してください。本当に理解できませんし、概念も理解できません。
たとえば、Closure::bind については、マニュアルには「クロージャをコピーし、指定された $this オブジェクトとクラス スコープをバインドする」と記載されています。これをどのように理解すればよいでしょうか?
クロージャと $this はどのように結合されますか?クラススコープは何に使用されますか?
また、1 つは静的バージョン、もう 1 つは動的バージョンです。これは何を指しますか?
与えられた例を使用してこれらの概念を説明できますか?

リーリー

ありがとう

返信内容:

ClosureのbindとbindToの使用法についてはPHPマニュアルを参照してください。本当に理解できませんし、概念も理解できません。
たとえば、Closure::bind については、マニュアルには「クロージャをコピーし、指定された $this オブジェクトとクラス スコープをバインドする」と記載されています。これをどのように理解すればよいでしょうか?
クロージャと $this はどのように結合されますか?クラススコープは何に使用されますか?
また、1 つは静的バージョン、もう 1 つは動的バージョンです。これは何を指しますか?
与えられた例を使用してこれらの概念を説明できますか?

リーリー

ありがとう

これまでに使ったことがあるかどうかわかりませんがjs中的call或者apply、少し似ています

実際、クロージャはオブジェクトのメンバーメソッドまたは静的メンバーメソッドとして扱われます。

リーリー

メンバーメソッドで$this访问对象, 静态成员方法直接使用类名::成员メソッドを使用します。
ただし、これは匿名関数であり、関数名がないため、$thisオブジェクトと使用できるクラススコープをバインドしたクロージャを返します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。