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实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
PHP实现的带超时功能get_headers函数
Feb 10 PHP
PHP检测用户语言的方法
Jun 15 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 PHP
php实现QQ小程序发送模板消息功能
Sep 18 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实现查看邮件是否已被阅读的方法
2013/12/03 PHP
php自定义apk安装包实例
2014/10/20 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
python如何删除文件中重复的字段
2019/07/16 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
django修改models重建数据库的操作
2020/03/31 Python
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
生产班组长岗位职责
2014/01/05 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
个人先进材料范文
2014/12/30 职场文书
公司的力量观后感
2015/06/05 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
2016年清明节寄语
2015/12/04 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL