php 回调函数(callback)

下面的内容是来自php.net 官方文档

callbacks

call_user_func() ,usort()等函数接受用户自定义的回调函数作为参数.

回调函数可以不仅仅是简单的函数,也可以是对象方法,包括对象的静态方法.

php 函数可以通过字符串类型的函数名进行调用,任何内建的或者用户自定义的函数都可以被使用.但是这其中不包括

php的语言结构,比如:array(),echo,empty(),eval(),exit(),isset(),list(),print,unset()

调用类的方法是通过将实例化的对象和调用方法的名称分别作为数组的第0个和第1个参数来进行调用.

调用类的静态方法可以不用实例化该类的对象,而是将类的名称和静态方法的名称分别作为数组的第0个和第1个参数来 进行调用.

在php5.2.3以后,也可以通过使用ClassName::methodName 来调用该类的静态方法.

除了这些通用的用户自定义函数,也可以使用匿名函数作为函数参数.


<?php 

// An example callback function
function my_callback_function() {
    echo 'hello world!';
}

// An example callback method
class MyClass {
    static 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'));

// Type 4: Static class method call (As of PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');

// Type 5: Relative static class method call (As of PHP 5.3.0)
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
?> 


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值