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 ?>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。