繁体   English   中英

使用while或foreach时,result_array中的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM