首頁 > php教程 > PHP源码 > 主體

我在想练习PHP

PHP中文网
發布: 2016-05-25 17:06:12
原創
1198 人瀏覽過

[PHP]代码    

<?php
class prototype {
	function __get($key){
		$this->property__=array_merge(self::$__property,$this->property__);
		return $this->property__[$key];										//实例动态添加
	}
	function __set($key,$value){											//实例获取
		$this->property__=array_merge(self::$__property,$this->property__);
		$this->property__[$key]=$value;
		return $this;
}
	public static function __callstatic($methodname,$arg){
		$method=self::$__property[$methodname];
		$method();
	}
	public function __call($methodname,$arg){
		$method=$this->property__[$methodname];
		$method($arg);
		return $this;
	}
	public static function _set($key,$value){
			return self::$__property[$key]=$value;
	}
	public function set_($key,$value){
			$this->property__=array_merge(self::$__property,$this->property__);//
			$this->property__[$key]=$value;
			return $this;
	}
	public static function _get($key){
		return self::$__property[$key];
	}
	public static $__property=array();
	public $property__=array();
}
class user extends prototype{
	public $_queue=array();
	function _before($functionname,$beforefunction,$beforeaction=null,$action=null){
		if(!empty($beforeaction)){
				$this->$beforefunction=$beforeaction;
		}
		if(!empty($action)){
				$this->$functionname=$action;
		}
			$pos=array_search($functionname,$this->_queue);
			if(!($pos===false)){
				array_splice($this->_queue,$pos,0,$beforefunction);
			}else{
				array_unshift($this->_queue,$beforefunction,$functionname);
			}
			return $this;
	}
	function _after($functionname,$afterfunction,$afteraction=null,$action=null){
				if(!empty($afteraction)){
				$this->$afterfunction=$afteraction;
		}
				if(!empty($action)){
					$this->$functionname=$action;
				}
			$pos=array_search($functionname,$this->_queue);
			if(!($pos===false)){
				array_splice($this->_queue,$pos+1,0,$afterfunction);
			}else{
				array_push($this->_queue,$functionname,$afterfunction);
			}
		return $this;
	}
	function queue(){
			$queue=$this->_queue;
			foreach( $queue as $work){
				$this->$work();
			}
	}
}
$a=new  user();
$a->_after("turnon","input",function(){echo "输入用户名,";},function(){echo "开机,O(∩_∩)O哈哈~" ;});
$a->_after("input","inputpassword",function(){echo "输入密码,";});
$a->_after("inputpassword","click",function(){echo "点击登录按钮";});
$a->_before("click","verif",function(){echo "输入验证码,";});
$a->queue();
?>
登入後複製

                   

                   

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板