PHP 的 callback 类型
来源:互联网 发布:mac访问nas共享文件夹 编辑:程序博客网 时间:2024/06/15 05:33
原文 : http://hdwong.com/articles/2009/06/00000044.html
在前一篇文章 深入 Drupal 引导流程 (3) - session_set_save_handler 中,提及到一种 callback 类型,在 PHP 原生类型里面并没有一种类型叫做 callback,按照官方文档的说法,callback 仅仅是在文档里面提及到的虚构类型 (伪类型)。callback 就是回调的意思,顾名思义它常被以参数的方式传递给其他函数,让别人来调用自己。PHP 的 callback 可以包括全局函数和类方法。
callback 的有效表示方法有以下几种
- 全局函数
function bar($string)
{
echo $string;
}
call_user_func('bar', 'Hello world.');
// 输出 Hello world. - 对象方法
class foo
{
function bar($string)
{
echo $string;
}
}
$obj = new foo;
call_user_func(array($obj, 'bar'), 'Hello world.');
// 输出 Hello world.
// PHP4 下 $obj 需要写成 &$obj,解析在文章最后 - 静态类方法
class foo
{
static function bar($string)
{
echo $string;
}
}
call_user_func(array('foo', 'bar'), 'Hello world.');
// 输出 Hello world.
call_user_func('foo::bar', 'Hello world.');
// 同样也是输出 Hello world. 这种语法只适用于 PHP 5.2.3 以上 - 类内部调用
class foo
{
function bar($string)
{
echo $string;
}
function callback()
{
call_user_func(array('self', 'bar'), 'Hello world.');
// 输出 Hello world.
}
}
foo::callback();以上是静态调用,如果是对象的内部调用,只需要改成
call_user_func(array($this, 'bar'), 'Hello world.');
注意 : 如果是 PHP 4,那么 $this 需要写成 &$this 来显式的传递引用,否则 PHP 会传递一个对象的拷贝过去的,而 PHP 5 后对象的传递默认就已经是引用了
本文仅使用 call_user_func 来举例 callback 的用法,实际中上述的表示方法可以在任何文档中标识为 callback 的类型,如 usort、array_map 等
- PHP 的 callback 类型
- PHP Callback 回调类型
- php Callback / Callable 类型备忘
- 18. PHP Callback 回调类型
- php手册之Callback 回调类型
- Callback 回调类型
- Drupal page callback 输出类型
- php 回调函数(callback)
- PHP的错误类型
- php 类型的比较
- PHP的类型约束
- PHP 的 变量类型
- php的类型转换
- PHP的错误类型
- PHP的错误类型
- php的变量类型
- VC++中的回调函数,即callback类型函数的作用
- VC++中的回调函数,即callback类型函数的作用
- 字符串操作功能StringUtil
- mysql 5.0存储过程学习总结
- 会选择比拥有美丽的容貌更重要
- 即时通讯编程(四)
- C#调用C++DLL的方法
- PHP 的 callback 类型
- VC6下使用STLPort
- ant中调用外部ant任务的两种方法
- 将java项目生成exe可执行文件全过程
- mysql备份(二)
- 接受不完美的自己
- 30年影响中国安防30人名单
- 容貌是可以改变的
- web 2.0海量小文件cache集群探讨(原创)