2014-07-02 84 views
4

建議在哪裏使用其中之一?我想存儲從db中列出的文章的數據。stdClass vs array。建議哪個?

這是一個簡單的問題:

echo $Datastore->name; //I like it works with foreach 

//vs 

echo $Datastore['name']; 

哪家是最好的? stdClassarray獲取元素的速度有什麼區別?

+0

作爲基於觀點的閉幕式,但我個人更喜歡數組,因爲有一堆有用的數組函數,您不能在stdClasses上使用它。 –

+0

Downvoting。無用的問題,你不能問哪個是最好的*。你應該思考「我應該用什麼方法讓自己和同事的生活更輕鬆」。速度明智 - 這是無關緊要的。 –

+0

可能的重複[什麼是更好的stdClass或(對象)數組來存儲相關數據?](http://stackoverflow.com/questions/18640607/what-is-better-stdclass-or-object-array-to-store相關數據) – mvp

回答

8

還有一個類似的問題什麼是更好的stdClass或(對象)數組來存儲相關數據?this answer

基於小試(http://phpfiddle.org/lite/code/cz0-hyf)我可以說 ,使用「新stdClass的()」比其他 選擇慢些的3倍左右。

這很奇怪,但鑄造一個數組是非常有效地完成比較 stdClass。

但是這個測試只測量執行時間。它不記憶記憶。

P.S.我只用phpFiddle來分享代碼。測試在我的本地電腦 上完成。

In answer to another similar question你可以看到這樣的結論:

  1. 對於數組,PHP 5.5比PHP 5.4更快,對於對象是幾乎相同的
  2. 類比陣列得益於慢PHP 5.5和數組的優化。
  3. stdClass是邪惡的。
  4. 類仍使用比數組少的內存。 (約減少30-40%!!)。
  5. SplFixedArray類似於使用類,但它使用更多的內存。