php通過魔術方法__call實現類函數重載

        由於在php是弱類型語言,並不像c++一樣可以通過改變函數返回值的類型和函數的參數個數進行重載!但在實際開發中可能會有重載函數的需求,爲了滿足開發需求,我們可以通過魔術方法__call()來實現函數重載

class Templates {
 <span style="white-space:pre">	</span>function __call($fun,$argv){
    	<span style="white-space:pre">	</span>if($fun=="assign"){
    		<span style="white-space:pre">	</span>if(count($argv)==1){
    			<span style="white-space:pre">	</span>$this->assign1($argv[0]);
    		<span style="white-space:pre">	</span>}
    		elseif(count($argv)==2){
    			$this->assign2($argv[0],$argv[1]);
    		}
    	}
    }
 //assign函數接受參數
  function assign2($key,$value){
  			if(isset($key)&&!empty($value)){
  				$this->val["$key"]=$value;
  			}else{
  				exit("ERROR:請設置變量");
  			}
  }
  //重載assign函數接受數組
  function assign1($array){
  			if(!empty($array)){
  				foreach($array as $key => $value){
  					$this->val["$key"]=$value;
  				}
  			}else{
  				exit("ERROR:請設置數組");
  			}
  }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章