2013-03-23 26 views
1

當從數據庫返回的東西,通過默認笨方法返回的對象(即$this->db->result() VS $this->db->result_array(),和相同的用於行/ row_array)。笨對象和數組

我是一個純粹的興趣,而不是教育的開發者,所以如果這是一個愚蠢的問題,請原諒我,但它返回的是什麼,以及爲什麼偏好 - 基於命名約定 - 似乎更喜歡數組中的對象,從什麼時候我可以告訴PHP開發人員愛陣列?

我做了一些背景閱讀,而且好像用PHP 5+,VS對象陣列上執行差別可以忽略不計。到目前爲止,我遇到的唯一區別是->而不是[]

這個問題可能不是特定於笨,但是這是我的參照系。

回答

0

我不確定api爲什麼這樣做的背後的歷史,但是如果你獲取對象,你可以讓CI db lib使用數據實例化自定義類,就像各種本地PHP *_fetch_object()一樣。

$query = $this->db->query("SELECT * FROM users;"); 
foreach ($query->result('User') as $row) { 
    // $row is not an instance of User 
} 

默認stdObject s爲沒有太大的用處不過,在我看來ArrayObject會是一個更好的解決方案,因爲這些支持->[]訪問,但CI來自PHP4時代,當那些不在身邊。