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制作中间带自己定义图片二维码的方法
Jan 27 PHP
php-fpm配置详解
Feb 12 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
php弹出提示框的是实例写法
Sep 26 PHP
php+iframe 实现上传文件功能示例
Mar 04 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
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
Python通过len函数返回对象长度
2020/10/22 Python
python从PDF中提取数据的示例
2020/10/30 Python
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
医学生实习自我鉴定
2013/09/27 职场文书
学校食堂采购员岗位职责
2013/12/05 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
学校师德承诺书
2014/05/23 职场文书
学校志愿者活动总结
2014/06/27 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
中秋晚会致辞
2015/07/31 职场文书
初一英语教学反思
2016/02/15 职场文书
靠谱准确的求职信
2019/04/02 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技