本文实例讲述了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("模特");
运行结果:
接口继承,要实现所有相关抽象方法! 模特正在跳舞!
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。