PHP クラスの静的関数およびオブジェクトのメソッド コールバックの手順
前の章では、コールバック関数はグローバル関数 (どのオブジェクトまたはクラスにも定義されていない関数) を通じて宣言および適用されましたが、コールバックが発生した場合は静的クラス内のメソッド、またはオブジェクト内の通常のメソッドは異なります。 オブジェクト指向技術については本書の後章で詳しく紹介しますので、この章で紹介した応用方法については、その後の学習や応用で必要に応じて遡って復習することができます。コールバック メソッドがクラスの静的メソッドまたはオブジェクトのメンバー メソッドの場合はどうすればよいでしょうか?前章ではphp関数のコールバック関数のcall_user_func_array()関数を紹介しましたもう一度call_user_func_array()関数の応用を見てみましょう。最初のパラメータの関数名文字列を配列型パラメータに変更できます。
次に、別途クラスを宣言し、クラス内で静的メンバーメソッドを宣言します。システム関数を使用して、クラス内の静的メンバー メソッドとインスタンス オブジェクト メンバー メソッドを呼び出します。
コードは次のとおりです:
<?php //声明一个类demo,类中声明一个静态成员方法fun() class demo{ static function fun($str1,$str2){ echo "str1 = ".$str1; echo "<br>"; echo "str2 = ".$str2; } } //声明一个类test,类中声明一个静态成员方法fun() class test{ function fun($str1,$str2){ echo "str1 = ".$str1; echo "<br>"; echo "str2 = ".$str2; } } //使用系统函数call_user_func_array(),调用demo类中的静态成员方法fun() call_user_func_array( array("demo","fun"), array("php.cn", "php中文网")); echo "<br>------------------------<br>"; //使用系统函数call_user_func_array(),调用test类中的实例对象成员方法fun() call_user_func_array( array(new test(),"fun"), array("thinkphp","php框架")) ?>注: call_user_func_array() 関数を使用して実装されたすべてのカスタム コールバック関数、または PHP システムで提供されるすべてのコールバック関数は、「配列の使用」のこの関数と同様に使用できます。最初のパラメーターに値を入力し、配列で 2 つの要素を使用する必要があります。クラスのメンバー メソッドを呼び出す場合は、配列パラメーターの最初の要素をクラス名文字列として指定し、2 番目の要素をクラス名文字列として指定する必要があります。配列パラメータはクラス内の静的メソッド名文字列です。オブジェクト内のメンバ メソッド名が呼び出される場合、この配列内の最初の要素はオブジェクトへの参照であり、2 番目の要素はオブジェクト内のメンバ名文字列です。 call_user_func_array() 関数の 2 番目のパラメーターの使用に変更はありません。 コールバック関数の記述形式は次のように要約されます。ここで、
callback() はすべてのコールバック関数を表します:
1 コールバック グローバル関数の形式は次のとおりです:
callback("函数名称字符串")
2コールバック クラスの静的メンバー メソッドの形式は次のとおりです:
callback(array("类名称字符串","类中静态方法名称字符串"))
3. コールバック オブジェクトのメンバー メソッドの形式は次のとおりです:
callback(array(对象引用,"对象中方法名称字符串"))システムとカスタム コールバック関数の呼び出しメソッドはまったく同じです。
さて、php関数のコールバック関数部分が導入されました。
【関連チュートリアルの推奨事項】
1.「
php.cn Dugu Jiijian (4) - PHPビデオチュートリアル」2. PHPプログラミングの入門からチュートリアルまでの完全なセット。マスター
以上がPHP関数のコールバック関数 (3) 静的関数やオブジェクトのメソッドコールバックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。