当前位置:首页 > PHP教程 > php应用 > 列表

php 多继承的几种常见实现方法示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-22 21:41:15 浏览: 评论:0 

这篇文章主要介绍了php 多继承的几种常见实现方法,结合实例形式分析了两种PHP实现多继承的操作方法,需要的朋友可以参考下。

本文实例讲述了php 多继承的几种常见实现方法,分享给大家供大家参考,具体如下:

  1. class Parent1 { 
  2.   function method1() {} 
  3.   function method2() {} 
  4. } 
  5. class Parent2 { 
  6.   function method3() {} 
  7.   function method4() {} 
  8. } 
  9. class Child { 
  10.   protected $_parents = array(); 
  11.   public function Child(array $parents=array()) { 
  12.     $this->_parents = $parents; 
  13.   } 
  14.   public function __call($method, $args) { 
  15.     // 从“父类"中查找方法 
  16.     foreach ($this->_parents as $p) { 
  17.       if (is_callable(array($p, $method))) { 
  18.         return call_user_func_array(array($p, $method), $args); 
  19.       } 
  20.     } 
  21.     // 恢复默认的行为,会引发一个方法不存在的致命错误 
  22.     return call_user_func_array(array($this, $method), $args); 
  23.   } 
  24. } 
  25. $obj = new Child(array(new Parent1(), new Parent2())); 
  26. print_r( array($obj) );die; 
  27. $obj->method1(); 
  28. $obj->method3(); 

运行结果:

  1. Array 
  2. ( 
  3.     [0] => Child Object 
  4.         ( 
  5.             [_parents:protected] => Array 
  6.                 ( 
  7.                     [0] => Parent1 Object 
  8.                         ( 
  9.                         ) 
  10.  
  11.                     [1] => Parent2 Object 
  12.                         ( 
  13.                         ) 
  14.  
  15.                 ) 
  16.  
  17.         ) 
  18.  
  19. ) 
  20.  
  21.  
  22. interface testA{ 
  23.   function echostr(); 
  24. } 
  25. interface testB extends testA{ 
  26.   function dancing($name); 
  27. } 
  28. class testC implements testB{ 
  29.   function echostr(){ 
  30.     echo "接口继承,要实现所有相关抽象方法!"; 
  31.     echo "<br>"; 
  32.   } 
  33.   function dancing($name){ 
  34.     echo $name."正在跳舞!"; 
  35.   } 
  36. } 
  37. $demo=new testC(); 
  38. $demo->echostr(); 
  39. $demo->dancing("模特"); 

运行结果:

接口继承,要实现所有相关抽象方法!

模特正在跳舞!

Tags: php多继承

分享到: