php 多继承的几种常见实现方法示例
作者:ztblog 发布时间:2023-11-22 19:03:19
标签:php,多继承
本文实例讲述了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程序设计有所帮助。
来源:https://blog.csdn.net/ztblog/article/details/80171393


猜你喜欢
- 翻译:ShiningRay @ Nirvana Studio作者:Douglas Crockford来源:http://www.crockf
- 属性在运行时的动态替换,叫做猴子补丁(Monkey Patch)。为什么叫猴子补丁属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上
- seed() 设置生成随机数用的整数起始值。调用任何其他random模块函数之前调用这个函数。语法以下是seed()方法的语法:
- 虚拟环境管理今天聊聊Python中虚拟环境的价值和常用命令。为什么会有虚拟环境?在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框
- OUTPUT是SQL SERVER2005的新特性,可以从数据修改语句中返回输出,可以看作是"返回结果的DML"。INS
- Python3中的map()、reduce()、filter() 这3个一般是用于对序列进行操作的内置函数,它们经常需要与 匿名函数 lam
- 这篇文章主要介绍了如何基于Python实现数字类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一、爬山法简介爬山法(climbing method)是一种优化算法,其一般从一个随机的解开始,然后逐步找到一个最优解(局部最优)。 假定所
- 对于Python开发用户来讲,安装第三方库是家常便饭,下面提供两种安装方式pycharm软件安装1.打开file>setting2.点
- 最近发现一个问题,是关于IDEA的一些骚操作的事儿~具体怎么回事,一起来看看。我们都知道使用git分布式版本控制工具,提、拉 代码都会有一个
- 很早很早的时候,computer这个东西习惯于被称之为计算机,因为它的主要功能是完成一些科学计算的东西,我记得自己鼓捣它的时候,就是计算,根
- Python 3.6 版本 Pytesseract 图像验证码识别环境:(1) win7 64位 (2) Idea (3) python 3
- 就javascript来说,iframe创建的框架和frameset创建的框架一样。这里有个关系图,做个笔记。图片源自《javascript
- k8s容器互联-flannel host-gw原理篇容器系列文章容器系列视频简析host-gw前面分析了flannel vxlan模式进行容
- 导语哈喽!大家晚上好,我是木木子吖,很久没给大家更新游戏代码的类型啦~骰子,是现在娱乐场所最常见的一种玩乐项目。一般骰子分两人和两人以上玩,
- 所谓“分块”,顾名思义,就是将数据集分成几块进行读取,比如有105条数据,一次读取10条,读取11次
- 背景堆是一种非常常用的数据结构,它能够支持在O(1)的时间复杂度获取到最大值(或最小值),因此我们经常在需要求最值的场景使用它。然而普通堆它
- 如果和不同的后台调接口,如果后台接口没有合到一起,前端可以配不同的代理来共同访问他们的接口在config文件夹下的index.js中设置如下
- 一、什么是vscode** Visual Studio Code (简称 VS Code /
- 本文实例讲述了nodejs简单实现TCP服务器端和客户端的聊天功能。分享给大家供大家参考,具体如下:服务器端var net = requir