Callback 类型
最后更新于:2022-04-02 02:32:13
[TOC]
## 示例
```
function my_callback_function() {
echo 'hello world!';
}
class MyClass {
static function myCallbackMethod() {
echo 'Hello World!';
}
}
// 类型1:简单回调
call_user_func('my_callback_function');
//类型2:静态类方法调用
call_user_func(array('MyClass', 'myCallbackMethod'));
//类型3:对象方法调用
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
array_map([$this,myCallbackMethod],$arr);
// 类型4:静态类方法调用
call_user_func('MyClass::myCallbackMethod');
// 类型5:相对静态类方法调用
class A {
public static function who() {
echo "A\n";
}
}
class B extends A {
public static function who() {
echo "B\n";
}
}
call_user_func(array('B', 'parent::who')); // A
//类型6:实现剩余调用的对象可以用作可调用对象(因为PHP 5.3)
class C {
public function __invoke($name) {
echo 'Hello ', $name, "\n";
}
}
$c = new C();
call_user_func($c, 'PHP!');
```
';