评论

收藏

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

开发技术 开发技术 发布于:2021-11-08 11:33 | 阅读数:548 | 评论:0

这篇文章主要介绍了php 多继承的几种常见实现方法,结合实例形式分析了两种PHP实现多继承的操作方法,需要的朋友可以参考下
本文实例讲述了php 多继承的几种常见实现方法。分享给大家供大家参考,具体如下:
class Parent1 {
  function method1() {}
  function method2() {}
}
class Parent2 {
  function method3() {}
  function method4() {}
}
class Child {
  protected $_parents = array();
  public function Child(array $parents=array()) {
  $this->_parents = $parents;
  }
  public function __call($method, $args) {
  // 从“父类"中查找方法
  foreach ($this->_parents as $p) {
    if (is_callable(array($p, $method))) {
    return call_user_func_array(array($p, $method), $args);
    }
  }
  // 恢复默认的行为,会引发一个方法不存在的致命错误
  return call_user_func_array(array($this, $method), $args);
  }
}
$obj = new Child(array(new Parent1(), new Parent2()));
print_r( array($obj) );die;
$obj->method1();
$obj->method3();
运行结果:
Array
(
  [0] => Child Object
    (
      [_parents:protected] => Array
        (
          [0] => Parent1 Object
            (
            )
          [1] => Parent2 Object
            (
            )
        )
    )
)
interface testA{
  function echostr();
}
interface testB extends testA{
  function dancing($name);
}
class testC implements testB{
  function echostr(){
  echo "接口继承,要实现所有相关抽象方法!";
  echo "<br>";
  }
  function dancing($name){
  echo $name."正在跳舞!";
  }
}
$demo=new testC();
$demo->echostr();
$demo->dancing("模特");
运行结果:
接口继承,要实现所有相关抽象方法!
模特正在跳舞!
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/ztblog/article/details/80171393

关注下面的标签,发现更多相似文章