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 相关文章推荐
PHP5.0对象模型探索之抽象方法和抽象类
Sep 05 PHP
配置最新的PHP加MYSQL服务器
Oct 09 PHP
linux下 C语言对 php 扩展
Dec 14 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
php生成带logo二维码方法小结
Apr 08 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 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令牌 Token改进版
2008/07/18 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python游戏地图最短路径求解
2019/01/16 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
python中如何进行连乘计算
2020/05/28 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
C#实现启动一个进程
2016/10/01 面试题
任长霞观后感
2015/06/16 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers
教你nginx跳转配置的四种方式
2022/07/07 Servers