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输出表格的实现代码(修正版)
Dec 29 PHP
PHP实现时间轴函数代码
Oct 08 PHP
php 操作符与控制结构
Mar 07 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
PHP数组和explode函数示例总结
May 08 PHP
PHP中static关键字以及与self关键字的区别
Jul 01 PHP
php实现搜索类封装示例
Mar 31 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
php查询内存信息操作示例
May 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实现微信小程序授权登录功能(实现流程)
Nov 13 #PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 #PHP
You might like
php时间不正确的解决方法
2008/04/09 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
php适配器模式简单应用示例
2019/10/23 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
用python写asp详细讲解
2013/12/16 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
python中的set实现不重复的排序原理
2018/01/24 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
Python实现图像的垂直投影示例
2020/01/17 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
工程项目经理岗位职责
2013/12/15 职场文书
大学生村官典型材料
2014/01/12 职场文书
股份合作协议书
2014/04/12 职场文书
小学生环保标语
2014/06/13 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
修辞手法有哪些?
2019/08/29 职场文书
Vue的过滤器你真了解吗
2022/02/24 Vue.js