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+xslt在windows平台上
Oct 09 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
Jul 15 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
Aug 08 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
Yii2实现多域名跨域同步登录退出
Feb 04 PHP
php实现的中文分词类完整实例
Feb 06 PHP
AJAX的使用方法详解
Apr 29 PHP
YII框架行为behaviors用法示例
Apr 26 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
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
理解javascript回调函数
2014/12/28 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
简单易懂的python环境安装教程
2017/07/13 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
Python通过socketserver处理多个链接
2020/03/18 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
毕业生自我鉴定范文
2013/11/08 职场文书
商场活动策划方案
2014/01/24 职场文书
安全检查管理制度
2014/02/02 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
企业安全生产承诺书
2014/05/22 职场文书
医学求职信
2014/05/28 职场文书
2014年工会工作总结
2014/11/12 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
导游词之河北邯郸
2019/09/12 职场文书