2011-05-20 99 views
3

的對象我有一個對象是一個數據庫查詢的結果,看起來像這樣(的var_dump輸出):「傳送」對象屬性不同的類

object(stdClass)#17 (6) { 
    ["id"]=> 
    string(1) "1" 
    ["title"]=> 
    string(20) "Some Title" 
    ["description"]=> 
    string(41) "Some really good stuff. Description here." 
    ["slug"]=> 
    string(19) "some-slug-url" 
    ["picture_url"]=> 
    NULL 
    ["price"]=> 
    string(4) "5.99" 
} 

我只需要「轉移」的所有屬性值到具有相同屬性名稱的不同類。有沒有簡單的方法來做到這一點?

回答

2

看看PHP的get_object_vars()-function達到預期的效果,而不噸賦值語句:

foreach (get_object_vars($sourceObject) as $name => $value) { 
    $destinationObject->$name = $value; 
} 

您應該確保您添加足夠的錯誤檢查此,根據您的需要。

2

簡單的和「故障安全」解決方案

$target = new MyClass; 
$target->id = $source->id; 
$target->title = $source->title; 
// and so on 

它更多的代碼一點點,但好處是

  • 如果$source變化的某些屬性,你會發現它(因爲它丟失在$target
  • 您可以命名$target的屬性完全獨立於$source
  • 你看,會發生什麼
+0

不壞,但我已經決定去與難以捉摸描述的選項 - 我想這個做法,我同意模型中的更改需要級聯更新,但由於我的項目相當小,我可能會很好地與上述解決方案相處融洽。 :) – Daniel 2011-05-20 11:15:04

相關問題