码迷,mamicode.com
首页 > Web开发 > 详细

PHP event 事件机制

时间:2015-11-20 10:36:04      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
<?php
/*
 * PHP 事件机制
 */
class baseClass{

    private $_e;
    
    public function __set($name,$value){
        if( strncasecmp($name,"on",2) === 0 ){
            if(!isset($this->_e[$name]))
                $this->_e[$name] = array();
            return array_push($this->_e[$name] , $value);
        }
    }
    
    public function __get($name){
        if( strncasecmp($name,"on",2) === 0 ){
            if(!isset($this->_e[$name]))
                $this->_e[$name] = array();
            return $this->_e[$name];
        }
    }

    public function raiseEvent($name, $parse){
         if(isset($this->_e[$name])){
             print_r($this->_e[$name]);
             foreach($this->_e[$name] as $handler)
                call_user_func($handler,$parse);
         }
    }

    public function save(){
        //xxx
        $this->raiseEvent("onSave", array());
    }
}
$InsA = new baseClass();
//1
$InsA->onSave = function($e){
    echo $e;
};

//2
class Log{
   static public function saveLog($e){
        echo "save Log".$e;
   }
}
$InsA->onSave = array("Log" , "saveLog");

$InsA->raiseEvent(‘onClick‘,‘success‘);

?>
技术分享

 

PHP event 事件机制

标签:

原文地址:http://www.cnblogs.com/archoncap/p/4979742.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!