2016-10-01 19 views
2

我目前正在研究一個需要我在查詢數據庫和/或處理數據時僅輸出對象的項目。我從其他高級開發人員那裏聽說,從記憶的角度來看,物體是「便宜的」,我「同意」這一點。PHP:數組對象標準化的好壞?

所以,我的問題:

  • 如果我有一個數組作爲查詢的結果。爲什麼不按原樣使用數組,因爲它已經存在?
  • 它是一個很好的做法(除了標準化)將其轉換爲對象嗎?
  • 它真的會提高性能嗎? (我無法理解它,因爲通過將結果轉換爲對象,我基本上是創建另一個實體,除了已經存在的數組,包含相同的數據)。

回答

1

在我看來,我會說你不應該把它們轉換成對象。 您已經將它們作爲數組使用,因此將它們轉換/複製到對象中需要更多的內存,因爲在給定的時間,最終會同時使用對象和數組。如果你絕對不需要任何OOP功能(繼承,私有屬性/方法......),你應該堅持使用你的數組。

但請記住:您可以經常獲取數據庫並獲取對象而不是數組作爲結果。 (請參閱PDO fetchAll)然後,您已經擁有了沒有陣列的對象。

如果你想知道這些雙方如何在性能方面的工作,看看 Using arrays VS objects for storing data

據我所知,(但我可能錯了)PHP arrays不是經典的C數組相比數組。 PHP數組是一種對象,因爲您有自由來改變數組的大小(只需添加一個值)。所以你沒有與C數組完全相同的性能。

結論:隨時保持陣列。如果您不需要對象的優勢,則無需使用資源來轉換它們。畢竟,這也是編程風格,最佳實踐和項目準則的問題。

+0

我完全同意你的看法,如果對象特徵不被利用,我看不到轉換數組的好處。我們的團隊目前正在重構一個巨大的項目,其中數據庫連接器層尚未更改,並且僅輸出數組。因此,我提出了這樣一個觀點:轉換數組不會提高性能,因爲我們只是複製數據,但仍然有足夠的前輩告訴我,否則我會開始猜測自己,如果我的想法是錯誤的。感謝您的概述! – Jay