PHP回调函数简单用法示例


Posted in PHP onMay 08, 2019

本文实例讲述了PHP回调函数简单用法。分享给大家供大家参考,具体如下:

php中提供了两个内置的回调函数call_user_func()call_user_func_array()

这两个函数的区别是:

call_user_func_array(callable $callback,array $param_arr)是以数组的形式接受回调函数和参数的。

call_user_func($callback, 参数1, 参数2)参数的个数是根据回调函数来决定的。

下面是一些常见的回调函数使用的例子:

//普通函数
function f1($param1,$param2)
{
 echo '函数'.__FUNCTION__.'被执行,传入的参数是:'.$param1.' '.$param2;
 echo "<br/>";
}
//通过call_user_func调用函数f1
call_user_func('f1','han','wen');
//通过call_user_func_array调用函数
call_user_func_array('f1',array('han','wen'));


运行结果:

函数f1被执行,传入的参数是:han wen

函数f1被执行,传入的参数是:han wen
class A{
 public $name;
 function show($param)
 {
  echo '传入参数是:'.$param."<br/>";
  echo 'my name is:'.$this->name;
  echo "<br/>";
 }
 function show1($param1,$param2)
 {
  echo __METHOD__.'方法被执行,传入参数是:'.$param1.' '.$param2."<br/>";
 }
 public static function show2($param1,$param2)
 {
  echo __METHOD__.'方法被执行,传入参数是:'.$param1.' '.$param2."<br/>";
 }
}
//调用类中非静态成员函数,该成员函数中有$this调用了对象中的成员
$a = new A;
$a->name = 'wen';
call_user_func_array(array($a,'show',),array('han!'));
//调用类中非静态成员函数,没有对象被创建,该成员函数中不能有$this
call_user_func_array(array('A','show1',),array('han!','wen'));
//调用类中静态成员函数
call_user_func_array(array('A','show2'),array('param1','param2'));

运行结果:

传入参数是:han!
my name is:wen
A::show1方法被执行,传入参数是:han! wen
A::show2方法被执行,传入参数是:param1 param2

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
PHP访问Google Search API的方法
Mar 05 PHP
PHP中的session安全吗?
Jan 22 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
php cookie 详解使用实例
Nov 03 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 #PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 #PHP
php封装的pdo数据库操作工具类与用法示例
May 08 #PHP
Laravel框架查询构造器简单示例
May 08 #PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 #PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
May 08 #PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 #PHP
You might like
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
分享php分页的功能模块
2015/06/16 PHP
PDO::setAttribute讲解
2019/01/29 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
javascript折半查找详解
2015/01/26 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
Python 多线程Threading初学教程
2017/08/22 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Django admin组件的使用
2020/10/24 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
空指针到底是什么
2012/08/07 面试题
英文版餐饮运营管理求职信
2013/11/06 职场文书
开学典礼主持词
2014/03/19 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
销售口号霸气押韵
2015/12/24 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis