我想從我的數據庫加載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