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中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
php阻止页面后退的方法分享
Feb 17 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 PHP
PHP 图片处理
Sep 16 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
js和php邮箱地址验证的实现方法
2014/01/09 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
mac系统安装Python3初体验
2018/01/02 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
Python异常处理机制结构实例解析
2020/07/23 Python
Python识别验证码的实现示例
2020/09/30 Python
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
简短证婚人证婚词
2014/01/09 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
追悼会主持词
2014/03/20 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书