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

运行结果:

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

运行结果:

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

模特正在跳舞!

Tags: php多继承

分享到: