>  기사  >  백엔드 개발  >  php经过魔术方法_call实现类函数重载

php经过魔术方法_call实现类函数重载

WBOY
WBOY원래의
2016-06-13 11:59:07868검색

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:请设置数组");  			}  }}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.