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类
Apr 09 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
ThinkPHP中的系统常量和预定义常量集合
Jul 01 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
php数组转成json格式的方法
Mar 09 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
Yii安装与使用Excel扩展的方法
Jul 13 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
laravel框架使用极光推送消息操作示例
Feb 15 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 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加密解密字符串汇总
2015/04/26 PHP
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
js实现动态时钟
2020/03/12 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
python登录豆瓣并发帖的方法
2015/07/08 Python
Python实现元素等待代码实例
2019/11/11 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
python实现最速下降法
2020/03/24 Python
Python实现代码块儿折叠
2020/04/15 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
中班幼儿评语大全
2014/04/30 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
经典禁毒标语
2014/06/16 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
十八大标语口号
2014/10/09 职场文书
2015年计划生育责任书
2015/05/08 职场文书
小学数学国培研修日志
2015/11/13 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Pygame Rect区域位置的使用(图文)
2021/11/17 Python