PHP中如何实现回调?
发布:smiling 来源: PHP粉丝网 添加日期:2020-01-31 12:49:01 浏览: 评论:0
在PHP中,回调是一个可调用类型的函数对象/引用;回调(或可调用)变量可以用作函数、对象方法和静态类方法。实现回调有多种方法,下面本篇文章就来介绍一些,希望对大家有所帮助。
1、标准回调
示例:使用call_user_func()函数调用一个函数,其中包含的参数是函数名称。
- <?php
- header("content-type:text/html;charset=utf-8");
- function text1(){
- echo '这个是text1<br>';
- };
- call_user_func('text1');
- ?>
输出:
这个是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('Article', 'someFunction'));
- call_user_func('Article::someFunction');
- // 相对静态类方法回调
- call_user_func(array('Article', 'parent::someFunction'));
- ?>
输出:
子级函数输出
子级函数输出
父级函数输出
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, 'someFunction'));
- 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
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。
Tags: PHP实现回调
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)