php 回调读取,PHP中如何实现回调?

本文介绍了PHP中的回调函数,包括标准回调、静态类方法回调、对象方法回调和闭包回调等不同方式,并通过实例展示了每种回调的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

ddb7142d2b3d94dc1f45ba40ccb8afc9.png

1、标准回调

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

header("content-type:text/html;charset=utf-8");

function text1(){

echo '这个是text1
';

};

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 "父级函数输出
";

}

}

class Article extends Demo {

// 用于输出字符串的函数

static function someFunction() {

echo "子级函数输出
";

}

}

// 静态类方法回调

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中文网
";

}

// 输出字符串的函数

public function __invoke() {

echo "__invoke()函数
";

}

}

// 类对象

$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");

// 用于输出

$print_function = function($string) {

echo $string."
";

};

// 字符串数组

$string_array = array("PHP", "Python", "MySQL");

// 可调用闭包

array_map($print_function, $string_array);

?>

输出:PHP

Python

MySQL

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值