ホームページ >バックエンド開発 >PHPチュートリアル >PHPコールバック関数(コールバック)
以下の内容は php.net の公式ドキュメントからのものです
callbacks
call_user_func()、usort() およびその他の関数は、ユーザー定義のコールバック関数をパラメータとして受け入れます
コールバック関数は単なる関数ではありません。オブジェクトの静的メソッドを含むオブジェクト メソッドです。
php 関数は文字列型の関数名を通じて呼び出すことができ、組み込み関数またはユーザー定義関数を使用できます。ただし、これには
php 言語構造は含まれません。例: array()、echo、empty()、eval()、exit()、isset()、list()、print、unset()
クラスを呼び出す方法は、オブジェクトをインスタンス化し、名前を呼び出すことです。メソッドの 1 つは、それぞれ配列の 0 番目と 1 番目のパラメーターとして呼び出されます。クラスのオブジェクトをインスタンス化せずに、クラスの静的メソッドを呼び出します。ただし、クラスの名前と静的メソッドの名前を名前として使用します。配列の 0 番目と 1 番目のパラメータはそれぞれ呼び出しに使用されます。
php5.2.3 以降では、これらの一般的なユーザー定義関数に加えて、ClassName::methodName.
を使用してクラスの静的メソッドを呼び出すこともできます。 、関数パラメータとして匿名関数を使用することもできます。
<?php // An example callback functionfunction my_callback_function() { echo 'hello world!';}// An example callback methodclass MyClass { static function myCallbackMethod() { echo 'Hello World!'; }}// Type 1: Simple callbackcall_user_func('my_callback_function'); // Type 2: Static class method callcall_user_func(array('MyClass', 'myCallbackMethod')); // Type 3: Object method call$obj = new MyClass();call_user_func(array($obj, 'myCallbackMethod'));// Type 4: Static class method call (As of PHP 5.2.3)call_user_func('MyClass::myCallbackMethod');// Type 5: Relative static class method call (As of PHP 5.3.0)class A { public static function who() { echo "A\n"; }}class B extends A { public static function who() { echo "B\n"; }}call_user_func(array('B', 'parent::who')); // A?>