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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
解析MySql与Java的时间类型
Jun 22 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
Oct 29 PHP
php实现读取超大文件的方法
Jul 28 PHP
初识Laravel
Oct 30 PHP
PHP编程入门的基本语法知识点总结
Jan 26 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
php判断当前操作系统类型
2015/10/28 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
layui实现数据分页功能
2019/07/27 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
python实现从字典中删除元素的方法
2015/05/04 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Django中多种重定向方法使用详解
2019/07/17 Python
python中dict()的高级用法实现
2019/11/13 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
房产协议书范本2014
2014/09/30 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2014年司法局工作总结
2014/12/11 职场文书
详细介绍python类及类的用法
2021/05/31 Python
MySQL系列之三 基础篇
2021/07/02 MySQL
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python