メソッドオーバーロード

 <?
 class Klass {
     function Klass() { }
     function func() {
         switch (func_num_args()) {
             case 0:
                 $this->_func0(func_get_args());
                 break;
             case 1:
                 $this->_func1(func_get_args());
                 break;
             default:
                 $this->_func0(func_get_args());
                 break;
         }
     }
     function _func0() {
         print "func0\n";
     }
     function _func1($arg) {
         $a = $arg[0];
         print "func1 $a\n";
     }
 }
 
 $k = new Klass;
 $k->func();        #=> func0
 $k->func('A');     #=> func1 A
 $k->func('A','B'); #=> func0
 ?>

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS