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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
PHP无限分类的类
Jan 02 PHP
php日历[测试通过]
Mar 27 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
PHP中快速生成随机密码的几种方式
Apr 17 PHP
PHP实现的贪婪算法实例
Oct 17 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
PHP执行普通shell命令流程解析
Aug 24 PHP
有关PHP 中 config.m4 的探索
Aug 26 PHP
微信小程序和php的登录实现
Apr 01 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实现与ASP Banner组件相似的类
2006/10/09 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
JS实现图片预加载无需等待
2012/12/21 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
python算法表示概念扫盲教程
2017/04/13 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
校领导推荐信
2013/11/01 职场文书
培训演讲稿范文
2014/01/12 职场文书
九年级家长会邀请函
2014/01/15 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
助理政工师申报材料
2014/06/03 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
刑事辩护词范文
2015/05/21 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
yolov5返回坐标的方法实例
2022/03/17 Python