当前位置:首页 > PHP教程 > php应用 > 列表

PHP实现事件机制的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-11 09:56:31 浏览: 评论:0 

这篇文章主要介绍了PHP实现事件机制的方法,实例分析了php针对事件机制的定义与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了PHP实现事件机制的方法,分享给大家供大家参考,具体如下:

  1. <?php 
  2. /** 
  3. * 事件 
  4. */ 
  5. class Event { 
  6.  private $callbacks = array(); 
  7.  private $holder
  8.  function __construct() { 
  9.   $bt = debug_backtrace(); 
  10.   if (count($bt) < 2) { 
  11.    $this->holder = null; 
  12.    return
  13.   } 
  14.   $this->holder = &$bt[1]['object']; 
  15.  } 
  16.  function attach() { 
  17.   $args = func_get_args(); 
  18.   switch (count($args)) { 
  19.    case 1: 
  20.     if (is_callable($args[0])) { 
  21.      $this->callbacks[]= $args[0]; 
  22.      return
  23.     } 
  24.     break
  25.    case 2: 
  26.     if (is_object($args[0]) && is_string($args[1])) { 
  27.      $this->callbacks[]= array(&$args[0], $args[1]); 
  28.     } 
  29.     return
  30.    default
  31.     return
  32.   } 
  33.  } 
  34.  function notify() { 
  35.   $bt = debug_backtrace(); 
  36.   if ($this->holder &&  
  37.     ((count($bt) >= 2 && $bt[count($bt) - 1]['object'] !== $this->holder) 
  38.     || (count($bt) < 2))) { 
  39.    throw(new Exception('Notify can only be called in holder')); 
  40.   } 
  41.   foreach ($this->callbacks as $callback) { 
  42.    $args = func_get_args(); 
  43.    call_user_func_array($callback$args); 
  44.   } 
  45.  } 
  46. }

Tags: PHP事件机制

分享到:

相关文章