php __call实现多继承,php如何使用_call实现多继承(代码示例)
本篇文章给大家带来的内容是关于php如何使用_call实现多继承(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
这篇文章简单介绍下使用_call实现代码的复用。
_call:php的一个魔术方法,当调用类中不存在的method时,会自动调用_call.
示例代码:class One{
function method_1(){
echo '11
';
}
function method_2(){
echo '22
';
}
}
class Two{
function method_3(){
echo '33
';
}
function method_4(){
echo '44
';
}
}
class StaticDemo{
protected $Class = array();
public function __construct(array $class = array()){
$this->Class = $class;
}
public function __call($name, $arguments)
{
// TODO: Implement __call() method.
foreach ($this->Class as $v){
if (is_callable(array($v, $name))) {
//call_user_func_array在上篇文章中已作出理解
return call_user_func_array(array($v, $name), $arguments);
}
}
return call_user_func_array(array($this, $name), $arguments);
}
}
$obj = new StaticDemo(array(new One(), new Two()));
$obj->method_1();
$obj->method_3();
运行结果:11,33
php __call实现多继承,php如何使用_call实现多继承(代码示例)相关推荐
- php中 继承中的概念,JavaScript_JavaScript中的继承方式详解,js继承的概念
js里常用的如下 - phpStudy...
JavaScript中的继承方式详解 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于 ...
- python 多继承与super使用详解_继承中的MRO与super详解
Python进阶-继承中的MRO与super 写在前面如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,super ...
- java继承孙子类_Java:类与继承
Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态 这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关 ...
- 我让代码生了个孩子继承了他爸爸谁知他爸爸继承了他爷爷(16)
本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...
- php 继承多个接口,PHP接口多继承及tarits实现多继承效果的方法
本文实例讲述了PHP接口多继承及tarits实现多继承效果的方法.分享给大家供大家参考,具体如下: 接口多继承 在PHP的面向对象中,接口可以继承接口.PHP类只能继承一个父类(单继承),但是接口可以 ...
- JS-深入理解继承(非class方式与class继承)
从一个面试题目入手: 如何实现一个类? 1. 类的三种属性: 公有属性:使用__proto__访问的属性 私有属性: 实例自带的属性 静态方法 (es7中有了静态属性) 2. 利用构造函数的方式模拟类 ...
- div不继承父类样式_Java三大特性之继承
继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有 ...
- 判断类型是否继承_【Java学习 | Javase】继承与多态
整理自:老师课件.<Java核心技术> 继承与多态 继承 概念 父类/超类 所有子集的公共域和公共方法的集合 子类 父类的特殊化,是对公共域和方法在功能.内涵方面的拓展和延伸 object ...
- python中的继承有什么特点_Python类的继承机制是什么
继承是面向对象的三大特征之一,也是实现代码复用的重要手段.继承经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码复制给新类. Pyt ...
最新文章
- ubuntu搭建jdk1.8运行环境(下载jdk方式)
- re.search中与正则表达式*结合使用的注意事项
- JDK、TOMCAT、Ant环境变量设置
- html长图滚动,Axure教程:长页或长图滚动效果
- python基础总结---安装、语法、变量、数据类型、计算、语句、(1-3)
- 牛客网【每日一题】5月27日题目精讲 货币系统
- Markdown编辑器的使用技巧
- IntelliJ IDEA中使用git
- Linux mysqladmin 命令
- 漫谈四种主流软件架构演进史
- Ubuntu16.04 设置自启动脚本,系统重启自动执行自定义脚本任务
- python背包问题并行_背包问题九讲python3实现
- python:批量修改文件夹名称
- 将excel表数据顺序与linux,Excel中表格数据进行颠倒顺序的设置方法
- 生物信息学最基础知识
- linux安装系统时安装多路径包,红帽子linux安装配置多路径
- SAP ABAP ALV 的一些总结:Custom container 和 Splitter container
- iso8583 协议详解
- UI设计新手必知的字体设计规范!
- 单例/单体模式(Singleton)
热门文章
- C语言将字符串s连接到t的后面,下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t..._考试资料网...
- sql文件加载出错_四十二、SparkSQL通用数据源加载(load)和保存(save)
- QDataStream 多余字符的产生原因及消除方法
- QT下信号与槽不在同一个线程中如何connect
- linux下查看系统硬件,Linux 查看系统硬件信息 Linux 查看系统硬件信息(实例详解)...
- Linux shell 编程(四):变量
- 【行为型】Strategy模式
- Raid3.0数据丢失怎么办
- 通过Intent传递类对象
- RHEL6基础之一系统内核Kernel与GNU计划及Linux发行版本