Sal*_*ake 6 php events event-handling
我想为对象的方法添加自定义事件处理程序.
我有一个方法课.
class Post {
public function Add($title) {
// beforeAdd event should be called here
echo 'Post "' . $title . '" added.';
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我想向方法添加一个事件Add,并将方法的参数传递给事件处理程序.
function AddEventHandler($event, $handler){
// What should this function do?
}
$handler = function($title){
return strtoupper($title);
}
AddEventHandler('beforeAdd', $handler);
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?希望我的问题很明确.
小智 4
使用这里定义的函数应该很容易http://www.php.net/manual/en/book.funchand.php
特别是,您应该保留一个处理程序数组(如果您想要同一事件的多个处理程序,则保留数组的数组),然后执行类似的操作
function AddEventHandler($event, $handler){
$handlerArray[$event] = $handler;
}
Run Code Online (Sandbox Code Playgroud)
或者
function AddEventHandler($event, $handler){
$handlerArray[$event][] = $handler;
}
Run Code Online (Sandbox Code Playgroud)
如果有多个处理程序。
然后调用处理程序只需调用“ call_user_func ”(如果需要多个处理程序,最终在一个循环中)
| 归档时间: |
|
| 查看次数: |
5790 次 |
| 最近记录: |