【问题标题】:Codeigniter objects and arraysCodeigniter 对象和数组
【发布时间】:2013-03-23 18:47:44
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php arrays codeigniter object


    【解决方案1】:

    我不确定 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 时代,而那些不是周围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 2015-11-28
      相关资源
      最近更新 更多