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中的MVC模式运用技巧
May 03 PHP
优化PHP代码的53条建议
Mar 27 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
Linux中为php配置伪静态
Dec 17 PHP
php将金额数字转化为中文大写
Jul 09 PHP
php短信接口代码
May 13 PHP
php + nginx项目中的权限详解
May 23 PHP
php对象工厂类完整示例
Aug 09 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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
yii操作session实例简介
2014/07/31 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
php简单判断文本编码的方法
2015/07/30 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
javascript读取RSS数据
2007/01/20 Javascript
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
JS面向对象编程详解
2016/03/06 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
Python中decorator使用实例
2015/04/14 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
2014年五四青年节活动策划书
2014/04/22 职场文书
门面房租房协议书
2014/08/20 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS