php中的__call()函数重载

 1 <?php
 2 #调用类中没有的方法时, 会自动调用__call方法重载
 3 #第一个参数是调用时的方法名, 第二个参数为参数组成的数组
 4 class Cat{
 5     public function Hello(){
 6         echo "Hello, __call<br />";
 7     }
 8     public function World($value){
 9         echo "The World:",$value[0],'<br />';
10     }
11     #__call(参数1method, 参数2$value)
12     public function __call($method, $value){
13         if(count($value) == 0){
14             $this->Hello();
15         }elseif(count($value) == 1){
16             $this->World($value);
17         }else{
18             echo "You call the function is:",(string)$method,'<br />';
19         }
20         
21     }
22 }
23 
24 $method = new Cat();
25 $method->METHOD();
26 $method->METHOD(1);
27 $method->METHOD('a',1);

 结果:

Hello, __call
The World:1
You call the function is:METHOD

 

posted on 2017-02-24 11:09  Perl6  阅读(378)  评论(0编辑  收藏  举报

导航