2015-02-06 94 views
-1

在PHP中有什麼方法(很容易)遞歸地替換對象屬性和其內容?PHP用數據替換對象屬性

ie:我想通過這個對象遞歸地刪除「data」屬性。所以它不是一個「中間人」

這樣,我沒有打電話給$foo->data->bar->data->id,我可以只調用$foo->bar->id

object(stdClass)[251] 
    public 'data' => 
    object(stdClass)[224] 
     public 'id' => string '1730e209-0cbf-4598-8e5a-c5ca8469e8b9' (length=36) 
     public 'level_id' => string '12cada4e-0874-490e-adce-b58700244446' (length=36) 
     public 'level' => 
     object(stdClass)[250] 
      public 'data' => 
      object(stdClass)[252] 
       ... 


object(stdClass)[251] 
    public 'id' => string '1730e209-0cbf-4598-8e5a-c5ca8469e8b9' (length=36) 
    public 'level_id' => string '12cada4e-0874-490e-adce-b58700244446' (length=36) 
    public 'level' => 
     object(stdClass)[250] 
      ... 
+1

'$ foo = $ foo-> data; echo $ foo-> bar-> id;' – 2015-02-06 15:23:27

+0

ya,但是如果它的'$ foo-> data-> bar-> data-> baz-> data-> id'或其他什麼呢?那不是一個可靠的解決方案。 – veilig 2015-02-06 15:27:35

+0

你可以使用具有(公共)對象屬性的'foreach',這樣你就可以編寫一個遞歸函數 – 2015-02-06 15:31:43

回答

0

這是你想要的嗎?我不確定,但是,無論如何...

foreach ($foo->data as $d){ 
    $id = $d->bar->data->id; 

    ... // do what you should here with $d children 
}