php 多继承的几种常见实现方法示例
程序员文章站
2023-01-04 08:32:48
本文实例讲述了php 多继承的几种常见实现方法。分享给大家供大家参考,具体如下:
class parent1 {
function method1() {}
fu...
本文实例讲述了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("模特");
运行结果:
接口继承,要实现所有相关抽象方法!
模特正在跳舞!