Codeigniter 数据库结果 - 对象还是数组?
Posted
技术标签:
【中文标题】Codeigniter 数据库结果 - 对象还是数组?【英文标题】:Codeigniter Database results - Objects or Arrays? 【发布时间】:2013-05-18 19:36:43 【问题描述】:我使用 Codeigniter 已经有一段时间了,我经常想知道哪个/是否使用 Codeigniter 的
$query->result()
或 $query->result_array()
就个人而言,我倾向于坚持使用数组,因为我发现操作数组和推送项目等更容易。唯一让我有点恼火的是在视图中简单或编写语句,例如
$row->title
比$row['title']
更简洁易读
但是
另一方面,$row->0
不是 $row[0]
!
我仍然不知道该走哪条路,如果有人能告诉我使用对象而不是数组的更多好处,我会很高兴!
【问题讨论】:
如果你喜欢 OOPS 而不是对象有优势 这完全取决于您 - 如果您更喜欢使用数组,请坚持使用它们,如果您更喜欢 OOP,对象会更好看。 随便挑一个。无论您想使用哪个都可以。另外,你为什么要使用$row->0
? $query->result()
返回一个对象数组。
如果您曾经有一个名为数字的数据库列,例如0 | 1 | 2(无论出于何种原因 - 我已经使用了一些奇怪的 API!)然后你需要使用上面的括号示例来引用
【参考方案1】:
我更喜欢对象,但在需要对所有(或某些)列执行某些检查或操作的情况下,使用数组可以减少混乱:
foreach ($row as $column => $value)
if ($value == null)
// oh no! null!
// check these columns and make sure they're non-negative
$non_negative = array('amount_paid', 'income');
foreach ($non_negative as $column)
if ($row[$column] < 0)
// less than zero? what a bum.
【讨论】:
以上是关于Codeigniter 数据库结果 - 对象还是数组?的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter查询结果返回带有setter的自定义结果对象