ホームページ  >  記事  >  バックエンド開発  >  PHPでコールバックを実装するにはどうすればよいですか?

PHPでコールバックを実装するにはどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2019-03-13 15:43:415520ブラウズ

PHP では、コールバックは呼び出し可能な型の関数オブジェクト/参照であり、コールバック (または呼び出し可能な) 変数は関数、オブジェクト メソッド、および静的クラス メソッドとして使用できます。コールバックの実装方法は数多くありますが、この記事ではその一部を紹介しますので、皆様の参考になれば幸いです。 [ビデオチュートリアルの推奨: PHP チュートリアル]

PHPでコールバックを実装するにはどうすればよいですか?

1. 標準コールバック

例: call_user_func( を使用します) ) 関数は、引数が関数名である関数を呼び出します。

<?php 
header("content-type:text/html;charset=utf-8");
function text1(){
    echo &#39;这个是text1<br>&#39;;
};
call_user_func(&#39;text1&#39;);
  
?>

出力:

这个是text1

説明: call_user_func() 関数が呼び出され、実行中に call_user_func() 関数が text1() 関数をコールバックします。

2. 静的クラス メソッドのコールバック

例: call_user_func() 関数を使用して静的クラス メソッドを呼び出します。ここで、パラメーターはクラス名と呼び出されるメソッドの配列。

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 用于输出字符串的函数
    static function someFunction() { 
        echo "父级函数输出 <br>"; 
    } 
} 
  
class Article extends Demo { 
  
    // 用于输出字符串的函数 
    static function someFunction() { 
        echo "子级函数输出 <br>"; 
    }    
} 
  
// 静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;someFunction&#39;)); 
  
call_user_func(&#39;Article::someFunction&#39;); 
  
// 相对静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;parent::someFunction&#39;)); 
  
?>

出力:

子级函数输出
子级函数输出
父级函数输出

3. オブジェクト メソッドのコールバック

例: call_user_func() 関数を使用してオブジェクト メソッドを呼び出します。オブジェクト変数と、呼び出されるメソッドの文字列名の配列が含まれます。

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 输出字符串的函数
    static function someFunction() { 
        echo "PHP中文网 <br>"; 
    } 
  
    // 输出字符串的函数
    public function __invoke() { 
        echo "__invoke()函数<br>"; 
    } 
} 
  
// 类对象
$obj = new Demo(); 
  
// 对象方法调用
call_user_func(array($obj, &#39;someFunction&#39;)); 
  
call_user_func($obj); 
  
?>

出力:

PHP中文网 
__invoke()函数

4. クロージャ コールバック

例: array_map() 関数を使用して有効な値を代入します。クロージャ関数 引数の配列 標準呼び出しを行うか、クロージャ関数をマッピングすることによってクロージャ関数を呼び出し可能にします。ここで、引数はクロージャ関数とその有効な引数の配列です。

<?php 
header("content-type:text/html;charset=utf-8");
// 用于输出<br>
$print_function = function($string) { 
    echo $string."<br>"; 
}; 
  
// 字符串数组 
$string_array = array("PHP", "Python", "MySQL"); 
  
// 可调用闭包
array_map($print_function, $string_array);
?>

出力:

PHP
Python
MySQL

上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がPHPでコールバックを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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