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模板引擎SMARTY
Oct 09 PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
PHPUnit安装及使用示例
Oct 29 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 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操作mysqli(示例代码)
2013/10/28 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
js模拟点击事件实现代码
2012/11/06 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
纯JS实现轮播图
2017/02/22 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Vue可自定义tab组件用法实例
2019/10/24 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
Python中decorator使用实例
2015/04/14 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python对切片命名的实现方法
2018/10/16 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
Django使用rest_framework写出API
2020/05/21 Python
Python 操作 MySQL数据库
2020/09/18 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
投标人廉洁自律承诺书
2014/05/26 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
文案策划岗位职责
2015/02/11 职场文书
比赛主持人开场白
2015/05/29 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL