ホームページ >バックエンド開発 >PHPチュートリアル >PHPコールバック関数(コールバック)

PHPコールバック関数(コールバック)

WBOY
WBOYオリジナル
2016-06-23 13:52:402325ブラウズ

以下の内容は 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?> 



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