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的错误信息
Oct 09 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
解析php中的escape函数
Jun 29 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
PHP常用的排序和查找算法
Aug 06 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 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错误级别的设置方法
2013/06/17 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
axios基本入门用法教程
2017/03/25 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
python中time tzset()函数实例用法
2021/02/18 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
水利学院求职自荐书
2014/02/01 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书