Welcome 微信登录

首页 / 网页编程 / PHP / PHP实现事件机制的方法

本文实例讲述了PHP实现事件机制的方法。分享给大家供大家参考。具体如下:
<?php/*** 事件*/class Event { private $callbacks = array(); private $holder; function __construct() {$bt = debug_backtrace();if (count($bt) < 2) { $this->holder = null; return;}$this->holder = &$bt[1]["object"]; } function attach() {$args = func_get_args();switch (count($args)) { case 1:if (is_callable($args[0])) { $this->callbacks[]= $args[0]; return;}break; case 2:if (is_object($args[0]) && is_string($args[1])) { $this->callbacks[]= array(&$args[0], $args[1]);}return; default:return;} } function notify() {$bt = debug_backtrace();if ($this->holder && ((count($bt) >= 2 && $bt[count($bt) - 1]["object"] !== $this->holder)|| (count($bt) < 2))) { throw(new Exception("Notify can only be called in holder"));}foreach ($this->callbacks as $callback) { $args = func_get_args(); call_user_func_array($callback, $args);} }}
希望本文所述对大家的php程序设计有所帮助。