当前位置:首页 > PHP教程 > php应用 > 列表

PHP中如何实现回调?

发布:smiling 来源: PHP粉丝网  添加日期:2020-01-31 12:49:01 浏览: 评论:0 

在PHP中,回调是一个可调用类型的函数对象/引用;回调(或可调用)变量可以用作函数、对象方法和静态类方法。实现回调有多种方法,下面本篇文章就来介绍一些,希望对大家有所帮助。

1、标准回调

示例:使用call_user_func()函数调用一个函数,其中包含的参数是函数名称。

  1. <?php  
  2.  
  3. header("content-type:text/html;charset=utf-8"); 
  4.  
  5. function text1(){ 
  6.  
  7.     echo '这个是text1<br>'
  8.  
  9. }; 
  10.  
  11. call_user_func('text1'); 
  12.  
  13. ?> 

输出:

这个是text1

说明:调用了一个call_user_func()函数,然后call_user_func()函数在执行过程中又往回调用了 text1()函数。

2、静态类方法回调

示例:使用call_user_func()函数调用静态类方法,其中的参数是一个包含类名称和要调用的方法的数组。

  1. <?php  
  2.  
  3. header("content-type:text/html;charset=utf-8"); 
  4.  
  5. class Demo {  
  6.  
  7.     
  8.  
  9.     // 用于输出字符串的函数 
  10.  
  11.     static function someFunction() {  
  12.  
  13.         echo "父级函数输出 <br>";  
  14.  
  15.     }  
  16.  
  17. }  
  18.  
  19.     
  20.  
  21. class Article extends Demo {  
  22.  
  23.     
  24.  
  25.     // 用于输出字符串的函数  
  26.  
  27.     static function someFunction() {  
  28.  
  29.         echo "子级函数输出 <br>";  
  30.  
  31.     }     
  32.  
  33. }  
  34.  
  35.     
  36.  
  37. // 静态类方法回调 
  38.  
  39. call_user_func(array('Article''someFunction'));  
  40.  
  41.     
  42.  
  43. call_user_func('Article::someFunction');  
  44.  
  45.     
  46.  
  47. // 相对静态类方法回调 
  48.  
  49. call_user_func(array('Article''parent::someFunction'));  
  50.  
  51.     
  52.  
  53. ?> 

输出:

子级函数输出

子级函数输出

父级函数输出

3、对象方法回调

示例:使用call_user_func()函数调用对象方法,其中参数是包含对象变量和要调用方法的字符串名称的数组。

  1. <?php  
  2.  
  3. header("content-type:text/html;charset=utf-8"); 
  4.  
  5. class Demo {  
  6.  
  7.     
  8.  
  9.     // 输出字符串的函数 
  10.  
  11.     static function someFunction() {  
  12.  
  13.         echo "PHP中文网 <br>";  
  14.  
  15.     }  
  16.  
  17.     
  18.  
  19.     // 输出字符串的函数 
  20.  
  21.     public function __invoke() {  
  22.  
  23.         echo "__invoke()函数<br>";  
  24.  
  25.     }  
  26.  
  27. }  
  28.  
  29. // 类对象 
  30.  
  31. $obj = new Demo();  
  32.  
  33. // 对象方法调用 
  34.  
  35. call_user_func(array($obj'someFunction'));  
  36.  
  37. call_user_func($obj);  
  38.  
  39. ?> 

输出:

PHP中文网

__invoke()函数

4、闭包回调

示例:使用array_map()函数对闭包函数赋予的有效参数数组进行标准调用或映射闭包函数,可以使闭包函数可调用,其中参数是闭包函数及其有效参数的数组。

  1. <?php  
  2.  
  3. header("content-type:text/html;charset=utf-8"); 
  4.  
  5. // 用于输出<br> 
  6.  
  7. $print_function = function($string) {  
  8.  
  9.     echo $string."<br>";  
  10.  
  11. };  
  12.  
  13. // 字符串数组  
  14.  
  15. $string_array = array("PHP""Python""MySQL");   
  16.  
  17. // 可调用闭包 
  18.  
  19. array_map($print_function$string_array); 
  20.  
  21. ?> 

输出:

PHP

Python

MySQL

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

Tags: PHP实现回调

分享到: