__call 实现函数方法不同参数个数的重载
1 <?php 2 class test{ 3 function __call($method,$arguments){ 4 //method 是类中没有定义的函数名 5 var_dump($method); 6 //arguments是类中没有定义的函数的参数,为一个数组 7 var_dump($arguments); 8 if($method=='do'){ 9 if (count($arguments)==1) { 10 //这里实现重载,如果一个参数,走这个if,输出这个参数 11 echo $arguments[0].'一个参数'; 12 } 13 if(count($arguments)==2){ 14 //两个参数,就走这个if,输出两者的和 15 echo $arguments[0]+$arguments[1],'两个参数 相加'; 16 } 17 } 18 } 19 } 20 $t=new test(); 21 $t->do(1); 22 $t->do(7,8); 23 /** 24 结果如下 25 string 'do' (length=2) 26 27 array (size=1) 28 0 => int 1 29 30 1一个参数 31 string 'do' (length=2) 32 33 array (size=2) 34 0 => int 7 35 1 => int 8 36 37 15两个参数 相加 38 */