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 相关文章推荐
GBK的页面输出JSON格式的php函数
Feb 16 PHP
php中常用的预定义变量小结
May 09 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
详细解读php的命名空间(二)
Feb 21 PHP
php实现微信支付之企业付款
May 30 PHP
Yii框架函数简单用法分析
Sep 09 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
thinkphp5使html5实现动态跳转的例子
Oct 16 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 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
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
jQuery代码优化 选择符篇
2011/11/01 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Android分包MultiDex策略详解
2017/10/30 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
给朋友的道歉信
2014/01/09 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
企业工会工作总结2015
2015/05/13 职场文书
庆七一主持词
2015/06/29 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
商业计划书格式、范文
2019/03/21 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python