• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHPevent事件机制

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
<?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');

?>

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php数组编码转换函数的示例发布时间:2022-07-10
下一篇:
Nginx下修改php.ini后重新加载配置文件命令发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap