• PHP event 事件机制


    <?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');
    
    ?>
  • 相关阅读:
    寒假作业1
    自我介绍
    我罗斯方块1
    我罗斯方块
    解题报告 数学2
    解题报告 转化模式
    解题报告 数学
    经典语录
    解题报告 Trick
    解题报告 帮忙
  • 原文地址:https://www.cnblogs.com/glory-jzx/p/3214722.html
Copyright © 2020-2023  润新知