zoukankan      html  css  js  c++  java
  • 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');
    
    ?>
  • 相关阅读:
    TSP-UK49687
    维度建模的基本原则
    差分约束系统
    随机过程初步
    随机过程——维纳过程
    Xilinx FPGA复位信号设计
    10 Row Abacus
    Python
    FX2LP与FPGA的简单批量回环
    DFT公式的一个简单示例
  • 原文地址:https://www.cnblogs.com/glory-jzx/p/3214722.html
Copyright © 2011-2022 走看看