ホームページ  >  記事  >  バックエンド開発  >  PHP は、マジック メソッド _call を通じてクラス関数のオーバーロードを実装します。

PHP は、マジック メソッド _call を通じてクラス関数のオーバーロードを実装します。

WBOY
WBOYオリジナル
2016-06-13 11:59:07866ブラウズ

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 までご連絡ください。