zoukankan      html  css  js  c++  java
  • PHP event 事件机制

    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');
    
    ?>
    复制代码
    生命只有一次。
  • 相关阅读:
    Hadoop
    Mapreduce
    ssh原理
    HDFS
    Centos
    创建jira插件
    新型的领导者是一名推动者,而不是一名发号施令者
    上善若水,虚怀若谷
    GoAhead 嵌入式web
    Eclipse基金会
  • 原文地址:https://www.cnblogs.com/archoncap/p/4979742.html
Copyright © 2011-2022 走看看