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字符串截取问题
Nov 28 PHP
介绍php设计模式中的工厂模式
Jun 12 PHP
php UBB 解析实现代码
Nov 27 PHP
浅析PHP绘图技术
Jul 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
php中的观察者模式简单实例
Jan 20 PHP
php通过获取头信息判断图片类型的方法
Jun 26 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 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
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
php广告加载类用法实例
2014/09/23 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
Python简单进程锁代码实例
2015/04/27 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
python django事务transaction源码分析详解
2017/03/17 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python程序运行原理图文解析
2018/02/10 Python
Django REST framework视图的用法
2019/01/16 Python
Python日期时间Time模块实例详解
2019/04/15 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
python能做什么 python的含义
2019/10/12 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
中文系师范生自荐信
2013/10/01 职场文书
《自然之道》教学反思
2014/02/11 职场文书
大学新闻系自荐书
2014/05/31 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
党员公开承诺书2015
2015/01/21 职场文书
工作服管理制度范本
2015/08/06 职场文书