当前位置: 首页 > 后端技术 > PHP

PHP通过_call实现多重继承

时间:2023-03-29 17:19:39 PHP

本文简单介绍使用_call实现代码复用。_call:php的一个神奇方法。当调用类中不存在的方法时,会自动调用_call。示例代码:`class``One{``function``method_1(){``echo``'11
'``;``}``function``method_2(){``echo``'22
'``;``}``}``类``二{``函数``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:实现__call()方法。``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``->方法od_3();`运算结果:11、33