我想从我的数据库加载2个对象。第一个对象是第一个对象(第一个对象是PHP和数据库)的父对象和第二对继承对象。PHP - MVC和表继承
我已经创建了2类: (这只是一个样品没有真正的代码,所以不要尝试解决此;-))
class A{
...
public static function get($id){
$query = "SELECT id,field1,field2 FROM table_A WHERE id = $id";
$result = request($query);
return load_object_A_instance($result);
}
...
}
class B extends A{
...
public static function get($id){
$query = "SELECT id,field3,field4 FROM table_B WHERE id = $id";
$result = request($query);
return load_object_B_instance($result);
}
...
}
我会实例化对象B有自己的属性和在“相同”动作中使用对象A的属性。我怎样才能做到这一点 ?
我有一些想法,但我不知道如何来实现:
class B extends A{
...
public static function get($id){
$query = "SELECT id, field3, field4 FROM table_B WHERE id = $id";
$result = request($query);
$B = load_object_B_instance($result);
if($B != empty/null){
$B = merge(A::get($B->id),$B); // <== that's the part I don't know how to implement
}
return $B;
}
...
}
编辑: 我找到了第一个解决方案(这是不干净的,但...)
echo $obj->name; //show: carlos
echo $obj2->lastname; //show: montalvo here
$obj_merged = (object) array_merge((array) $obj, (array) $obj2);
$obj_merged->name; //show: carlos
$obj_merged->lastname; //show: montalvo here;
解决方法发现在这里:How do I merge two objects?
http://stackoverflow.com/questions/2994758/function-overloading-and-overriding-in- php 这是否回答你想要做的事情? – 2012-03-30 12:54:27