PHP中传递回调函数的方法

JS中使用回调都习以为常了,那么PHP里面如何实现呢?

1. 全局方法,传入字符串'my_global_func';

2. 类的静态方法,如array('MyClass', 'MyStaticFunc').

3. 对象方法,如array($object, 'objectFunc').

4. 用create_function来创建匿名函数

$component->attachEventHandler('onClick',

create_function('$event', 'echo "Click!"'));

5. PHP5.3以后支持直接写匿名函数(JS最常用的写法)

$component->attachEventHanderl('onClick',

function($event) { echo "Click!"});

例子

如果你无法打开服务器端的gzip,那么可以用PHP来完成gzip,以Yii框架为例

 1 // attaching a handler to application start
 2 Yii::app()->onBeginRequest = function($event) {
 3  // ob_gzhandler是提供给ob_start使用的回调函数,这里用的是全局函数式的回调。
 4  return ob_start("ob_gzhandler");
 5 };
 6 // attaching a handler to application end
 7 Yii::app()->onEndRequest = function($event) { 8  
 9  return ob_end_flush();
10 };
11 $app->run();