1

从数据库返回内容时,默认情况下 Codeigniter 方法返回对象(即$this->db->result()vs $this->db->result_array(),对于 row/row_array 也是如此)。

我是纯粹出于兴趣而不是受过教育的开发人员,所以如果这是一个愚蠢的问题,请原谅,但它返回有什么关系,以及为什么偏好 - 基于命名约定 - 似乎更喜欢对象而不是数组,我什么时候可以告诉 php 开发人员喜欢数组?

我做了一些背景阅读,似乎使用 PHP 5+,数组与对象的执行差异可以忽略不计。到目前为止,我遇到的唯一区别是->[].

这个问题可能不是 Codeigniter 特有的,但这是我的参考框架。

4

1 回答 1

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
 }

虽然默认stdObjects 并不太有用,但我认为ArrayObject这是一个更好的解决方案,因为它们同时支持->[]访问,但是 CI 来自 PHP4 时代,当时还没有。

于 2013-03-23T19:25:51.387 回答