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 相关文章推荐
PHP4(windows版本)中的COM函数
Oct 09 PHP
PHP 基本语法格式
Dec 15 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
PHP中开启gzip压缩的2种方法
Jan 31 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
非常重要的php正则表达式详解
Jan 04 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
php中如何执行linux命令详解
Nov 06 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 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
短波问题解答
2021/02/28 无线电
php curl的深入解析
2013/06/02 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
基于jquery的无刷新分页技术
2011/06/11 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
js 颜色选择插件
2017/01/23 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
跟老齐学Python之数据类型总结
2014/09/24 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
Python 迭代器工具包【推荐】
2016/05/06 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
python 为什么说eval要慎用
2019/03/26 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
捐书寄语赠言
2014/01/18 职场文书
汽车队司机先进事迹材料
2014/02/01 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
python lambda 表达式形式分析
2022/04/03 Python
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android