[英]Difference between result_array() and result() in CodeIgniter
[英]CodeIgniter difference in result_array when using while or foreach
我的模型中有以下功能:
public function get_current_knowledge($account_id)
{
$query = $this->db->query('SELECT * FROM knowledge WHERE account_id = ?', array($account_id));
return $query->result_array();
}
我曾经这样访问它:
while ($record = $this->synchronization_model->get_current_knowledge($account['id'])) {
print_r($record);
}
但是奇怪的是,我的页面会超时,可能是因为while导致了永无止境的循环之类的事情? 但是,为什么呢?
我注意到foreach确实有效。 但是从本质上讲,它应该返回与while相同的结果吗? 当像这样访问它时,使用foreach:
foreach ($this->synchronization_model->get_current_knowledge($account['id']) as $row)
{
print_r($row);
}
只要括号内的内容是真实的, while()
循环就会运行。
每次循环运行时,您都将$this->synchronization_model->get_current_knowledge($account['id'])
的值分配给变量$record
。 当然,变量具有值(因为您正在为其分配值),因此它始终是真实的。 那就是您获得无限循环的地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.