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