首页 > 开发 > PHP > 正文

PHP实现事件机制的方法

2024-05-04 22:35:53
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表