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


Posted in PHP onNovember 18, 2019

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
PHP 学习路线与时间表
Feb 21 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
PHP SOCKET编程详解
May 22 PHP
php metaphone()函数的定义和用法
May 15 PHP
PHP常用的三种设计模式
Feb 17 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
PHP二维数组分页2种实现方法解析
Jul 09 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 #PHP
PHP cookie与session会话基本用法实例分析
Nov 18 #PHP
php pdo连接数据库操作示例
Nov 18 #PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 #PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 #PHP
PHP实用小技巧之调用录像的方法
Dec 05 #PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 #PHP
You might like
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
Javascript中引用示例介绍
2014/02/21 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
python编写微信远程控制电脑的程序
2018/01/05 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
简单了解Python生成器是什么
2019/07/02 Python
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
国际会议邀请函范文
2014/01/16 职场文书
销售简历自我评价
2014/01/24 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
前处理组长岗位职责
2014/03/01 职场文书
有趣的广告词
2014/03/18 职场文书
绿色出行口号
2014/06/18 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
党支部承诺书
2015/01/20 职场文书
校园之声广播稿
2015/08/18 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python