ホームページ >バックエンド開発 >PHPチュートリアル >クラスメソッドをコールバックとして渡す方法: メカニズムとテクニックを理解する
シナリオによっては、効率を高めるために、クラス メソッドをコールバックとして他の関数に渡す必要がある場合があります。特定のタスクの実行。この記事では、これを実現するためのさまざまなメカニズムについて説明します。
関数をコールバックとして渡すには、その名前を文字列として直接指定できます。ただし、このメソッドはクラス メソッドには適用できません。
クラス インスタンス メソッドは、オブジェクトを最初の要素、メソッド名を要素とする配列を使用してコールバックとして渡すことができます。 2番。このアプローチは、同じクラスの内部と外部の両方で機能します。
<code class="php">// Inside the same class $this->processSomething([$this, 'myCallback']); $this->processSomething([$this, 'myStaticCallback']); // Outside the same class $myObject->processSomething([new MyClass(), 'myCallback']); $myObject->processSomething([new MyClass(), 'myStaticCallback']);</code>
静的クラス メソッドにはオブジェクト インスタンスは必要ありません。これらは、クラス名とメソッド名を含む配列として直接渡すことができます。
<code class="php">// Inside the same class $this->processSomething([__CLASS__, 'myStaticCallback']); // Outside the same class $myObject->processSomething(['\Namespace\MyClass', 'myStaticCallback']); $myObject->processSomething(['\Namespace\MyClass::myStaticCallback']); // PHP 5.2.3+ $myObject->processSomething([MyClass::class, 'myStaticCallback']); // PHP 5.5.0+</code>
上記のメソッドとは別に、匿名関数をコールバックとして渡すこともできます。これには、コード構造の変更が必要になる場合があります。
以上がクラスメソッドをコールバックとして渡す方法: メカニズムとテクニックを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。