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 相关文章推荐
一个程序下载的管理程序(二)
Oct 09 PHP
PHP数组操作汇总 php数组的使用技巧
Jul 17 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
详解php框架Yaf路由重写
Jun 20 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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 session 预定义数组
2009/03/16 PHP
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
yii2安装详细流程
2018/05/23 PHP
PHP的PDO连接讲解
2019/01/24 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
微信小程序 自定义消息提示框
2017/08/06 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python打开使用的方法
2019/09/30 Python
CSS3 RGBA色彩模式使用实例讲解
2016/04/26 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
优秀党员获奖感言
2014/02/18 职场文书
法律进企业活动方案
2014/03/04 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
八一建军节慰问信
2015/02/14 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
致接力运动员加油稿
2015/07/21 职场文书
小学英语课教学反思
2016/02/15 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
基于Python的EasyGUI学习实践
2021/05/07 Python
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
html粘性页脚的具体使用
2022/01/18 HTML / CSS