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 相关文章推荐
火车头采集器3.0采集图文教程
Mar 17 PHP
JS 网站性能优化笔记
May 24 PHP
用PHP实现弹出消息提示框的两种方法
Dec 17 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
PHP发送短信代码分享
Aug 11 PHP
php如何连接sql server
Oct 16 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
ThinkPHP 模板引擎使用详解
May 07 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
PHP观察者模式定义与用法实例分析
Mar 22 PHP
PHP实现文件上传操作和封装
Mar 04 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 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通过session防url攻击方法
2014/12/10 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
Python项目打包成二进制的方法
2020/12/30 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
高职助产应届生自荐信
2013/09/24 职场文书
高三政治教学反思
2014/02/06 职场文书
本科应届生自荐信
2014/06/29 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
信息简报范文
2015/07/21 职场文书