我想在PHP中实现类似于ac#delegate方法的东西.快速解释我正在尝试做的事情:我正在尝试实现一些异步功能.基本上,一些资源密集型调用在底层系统到达时会被排队,缓存和调度.当异步调用最终收到响应时,我希望引发一个回调事件.
我遇到了一些问题,想出一种在PHP中进行回调的机制.我想出了一种现在适用的方法,但我对它不满意.基本上,它涉及传递对象的引用和方法的名称,它将作为回调(将响应作为参数),然后在需要时使用eval调用方法.由于各种原因,这是次优的,有没有人知道更好的方法呢?
Vol*_*erK 16
(除了观察者模式)你也可以使用call_user_func()
或call_user_func_array()
.
如果你传递一个array(obj, methodname)
第一个参数,它将被调用为$obj->methodname()
.
<?php
class Foo {
public function bar($x) {
echo $x;
}
}
function xyz($cb) {
$value = rand(1,100);
call_user_func($cb, $value);
}
$foo = new Foo;
xyz( array($foo, 'bar') );
?>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11874 次 |
最近记录: |