本文实例讲述了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,$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相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。