__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 */
原文地址:https://www.cnblogs.com/dk1988/p/3537893.html