2013-03-23 52 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时代,当那些不在身边。