PHP callback函数使用方法和注意事项


Posted in PHP onJanuary 23, 2015

在PHP中有些诸如 call_user_function()usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。

一个 PHP 函数用函数名字符串来传递。您可以传递任何内建的或者用户自定义的函数,除了 array()echo()empty()eval()exit()isset()list()print()unset()

一个对象的方法以数组的形式来传递,数组的 0 下标指明对象名,下标 1 指明方法名。

对于没有实例化为对象的静态类,要传递其方法,将数组 0 下标指明的对象名换成该类的名称即可。

Callback 函数实例:

  • http://www.phpe.net/manual/language.pseudo-types.php
  • http://cn.php.net/manual/en/language.pseudo-types.php
<?php 

// An example callback function

function my_callback_function() {

   echo 'hello world!';

}

// An example callback method

class MyClass {

   function myCallbackMethod() {

       echo 'Hello World!';

   }

}

// Type 1: Simple callback

call_user_func('my_callback_function');

// Type 2: Static class method call

call_user_func(array('MyClass', 'myCallbackMethod'));

// Type 3: Object method call

$obj = new MyClass();

call_user_func(array($obj, 'myCallbackMethod'));

?>

 

PHP 相关文章推荐
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
smarty实例教程
Nov 19 PHP
PHP 的几个配置文件函数
Dec 21 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
分割GBK中文遭遇乱码的解决方法
Aug 09 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
PHP微框架Dispatch简介
Jun 12 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
php将服务端的文件读出来显示在web页面实例
Oct 31 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 #PHP
使用PHP生成PDF方法详解
Jan 23 #PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 #PHP
对PHP PDO的一些认识小结
Jan 23 #PHP
smarty模板引擎中自定义函数的方法
Jan 22 #PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 #PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 #PHP
You might like
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
2013/06/24 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python使用新浪微博API发送微博的例子
2014/04/10 Python
Python对excel文档的操作方法详解
2018/12/10 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
python文件及目录操作代码汇总
2020/07/08 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
超市营业员岗位职责
2013/12/20 职场文书
高中生操行评语大全
2014/04/25 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
PHP策略模式写法
2021/04/01 PHP