国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php如何使用_call實現多繼承(代碼示例)

2024-09-04 11:43:56
字體:
來源:轉載
供稿:網友

本篇文章給大家帶來的內容是關于php如何使用_call實現多繼承(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

這篇文章簡單介紹下使用_call實現代碼的復用。

_call:php的一個魔術方法,當調用類中不存在的method時,會自動調用_call.

示例代碼:

  1. class One{ 
  2.  
  3.     function method_1(){ 
  4.  
  5.         echo '11<br/>'
  6.  
  7.     } 
  8.  
  9.     function method_2(){ 
  10.  
  11.         echo '22<br/>'
  12.  
  13.     } 
  14.  
  15.  
  16.  
  17.  
  18. class Two{ 
  19.  
  20.     function method_3(){ 
  21.  
  22.         echo '33<br/>'
  23.  
  24.     } 
  25.  
  26.     function method_4(){ 
  27.  
  28.         echo '44<br/>'
  29.  
  30.     } 
  31.  
  32.  
  33. class StaticDemo{ 
  34.  
  35.  
  36.  
  37.     protected $Class = array(); 
  38.  
  39.  
  40.  
  41.     public function __construct(array $class = array()){ 
  42.  
  43.         $this->Class = $class
  44.  
  45.     } 
  46.  
  47.  
  48.  
  49.     public function __call($name$arguments
  50.  
  51.     { 
  52.  
  53.         // TODO: Implement __call() method. 
  54.  
  55.         foreach ($this->Class as $v){ 
  56.  
  57.             if (is_callable(array($v$name))) { 
  58.  
  59.                 //call_user_func_array在上篇文章中已作出理解 
  60.  
  61.                 return call_user_func_array(array($v$name), $arguments); 
  62.  
  63.             } 
  64.  
  65.         } 
  66.  
  67.         return call_user_func_array(array($this$name), $arguments); 
  68.  
  69.     } 
  70.  
  71.  
  72. //Vevb.com 
  73.  
  74.  
  75.  
  76. $obj = new StaticDemo(array(new One(), new Two())); 
  77.  
  78. $obj->method_1(); 
  79.  
  80. $obj->method_3(); 

運行結果:11,33

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐池县| 潞西市| 永胜县| 桂林市| 新疆| 瓮安县| 静海县| 遂昌县| 教育| 珠海市| 西峡县| 邛崃市| 台湾省| 甘孜| 山东| 商南县| 台江县| 罗平县| 嘉鱼县| 曲沃县| 滦南县| 长泰县| 东丽区| 惠来县| 临泉县| 呼玛县| 精河县| 绍兴县| 古蔺县| 威信县| 银川市| 嘉定区| 重庆市| 沙河市| 嘉义市| 剑河县| 涿州市| 泸溪县| 定西市| 浠水县| 广灵县|