本篇文章给大家带来的内容是关于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实现多继承(代码示例)相关推荐

  1. php中 继承中的概念,JavaScript_JavaScript中的继承方式详解,js继承的概念 js里常用的如下 - phpStudy...

    JavaScript中的继承方式详解 js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于 ...

  2. python 多继承与super使用详解_继承中的MRO与super详解

    Python进阶-继承中的MRO与super 写在前面如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,super ...

  3. java继承孙子类_Java:类与继承

    Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态 这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关 ...

  4. 我让代码生了个孩子继承了他爸爸谁知他爸爸继承了他爷爷(16)

    本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...

  5. php 继承多个接口,PHP接口多继承及tarits实现多继承效果的方法

    本文实例讲述了PHP接口多继承及tarits实现多继承效果的方法.分享给大家供大家参考,具体如下: 接口多继承 在PHP的面向对象中,接口可以继承接口.PHP类只能继承一个父类(单继承),但是接口可以 ...

  6. JS-深入理解继承(非class方式与class继承)

    从一个面试题目入手: 如何实现一个类? 1. 类的三种属性: 公有属性:使用__proto__访问的属性 私有属性: 实例自带的属性 静态方法 (es7中有了静态属性) 2. 利用构造函数的方式模拟类 ...

  7. div不继承父类样式_Java三大特性之继承

    继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有 ...

  8. 判断类型是否继承_【Java学习 | Javase】继承与多态

    整理自:老师课件.<Java核心技术> 继承与多态 继承 概念 父类/超类 所有子集的公共域和公共方法的集合 子类 父类的特殊化,是对公共域和方法在功能.内涵方面的拓展和延伸 object ...

  9. python中的继承有什么特点_Python类的继承机制是什么

    继承是面向对象的三大特征之一,也是实现代码复用的重要手段.继承经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码复制给新类. Pyt ...

最新文章

  1. ubuntu搭建jdk1.8运行环境(下载jdk方式)
  2. re.search中与正则表达式*结合使用的注意事项
  3. JDK、TOMCAT、Ant环境变量设置
  4. html长图滚动,Axure教程:长页或长图滚动效果
  5. python基础总结---安装、语法、变量、数据类型、计算、语句、(1-3)
  6. 牛客网【每日一题】5月27日题目精讲 货币系统
  7. Markdown编辑器的使用技巧
  8. IntelliJ IDEA中使用git
  9. Linux mysqladmin 命令
  10. 漫谈四种主流软件架构演进史
  11. Ubuntu16.04 设置自启动脚本,系统重启自动执行自定义脚本任务
  12. python背包问题并行_背包问题九讲python3实现
  13. python:批量修改文件夹名称
  14. 将excel表数据顺序与linux,Excel中表格数据进行颠倒顺序的设置方法
  15. 生物信息学最基础知识
  16. linux安装系统时安装多路径包,红帽子linux安装配置多路径
  17. SAP ABAP ALV 的一些总结:Custom container 和 Splitter container
  18. iso8583 协议详解
  19. UI设计新手必知的字体设计规范!
  20. 单例/单体模式(Singleton)

热门文章

  1. C语言将字符串s连接到t的后面,下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t..._考试资料网...
  2. sql文件加载出错_四十二、SparkSQL通用数据源加载(load)和保存(save)
  3. QDataStream 多余字符的产生原因及消除方法
  4. QT下信号与槽不在同一个线程中如何connect
  5. linux下查看系统硬件,Linux 查看系统硬件信息 Linux 查看系统硬件信息(实例详解)...
  6. Linux shell 编程(四):变量
  7. 【行为型】Strategy模式
  8. Raid3.0数据丢失怎么办
  9. 通过Intent传递类对象
  10. RHEL6基础之一系统内核Kernel与GNU计划及Linux发行版本