首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

戏法方法(三)

2012-11-23 
魔术方法(三)?php/**** 燕十八 公益PHP讲堂论坛: http://www.zixue.it 微博: http://weibo.com/Yshiba YY

魔术方法(三)

  1. <?php  /**** 
  2. 燕十八 公益PHP讲堂  
  3. 论  坛: http://www.zixue.it 微  博: http://weibo.com/Yshiba 
  4. YY频道: 88354001 ****/  
  5.     
  6. /*** ====笔记部分==== 
  7. __call  __callStatic 
  8. ***/    
  9. /* class Human { 
  10.     public function hello() {         echo 'hello<br />'; 
  11.     } } 
  12.  $lisi = new Human(); 
  13.  $lisi->hello(); 
  14. $lisi->say(); // Fatal error: Call to undefined method Human::say() 
  15. */    
  16.     
  17. class Human {      public function hello() {  
  18.         echo 'hello<br />';      }  
  19.       private function t() {  
  20.     }    
  21.     public static function __callStatic($method,$argu) {          echo '你想调用一个不存在或不权调用的静态方法',$method,'<br />';  
  22.         echo '你调用时还传了参数<br />';          print_r($argu);  
  23.     }    
  24.     public function __call($method,$argu) {          echo '你想调用一个我不存在或不权调用的方法',$method,'<br />';  
  25.         echo '你调用时还传了参数<br />';          print_r($argu);  
  26.     }     
  27. }    
  28. $lisi = new Human();    
  29. $lisi->hello();  $lisi->say(1,2,3);  
  30.   $lisi->t('a','b','c');  
  31.   /* 
  32. __call是调用不可见(不存在或无权限)的方法时,自动调用 $lisi->say(1,2,3);-----没有say()方法----> __call('say',array(1,2,3))运行 
  33.  */  
  34.     
  35.   Human::cry('痛哭','号哭','鬼哭');  
  36. /* __callStatic 是调用不可见的静态方法时,自动调用. 
  37. Human::cry('a','b','c')----没有cry方法---> Human::__callStatic('cry',array('a','b','c')); */  
  38.     
  39.   /* 
  40. 这个__callStatic 为什么和其他系统函数颜色不太一样呢?  
  41. 答: 这个方法 是PHP5.3里才添加的,比较新. 
  42. 可能老版本的ediptlus的语法文件里,没有他 */  

热点排行