如何返回当前对象?

时间:2010-04-10 21:48:53

标签: php oop codeigniter

在代码点火器中,您可以输入:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}

我想查询方法会返回它所属的对象。我是对的吗?

如果我是,你如何键入返回对象的行?

所以我想知道在查询方法中看起来如何使上述代码正常运行。

public function query($sql) {
    // some db logic here with the $sql and saves the values to the properties (title, name and body)

    return X
}

换句话说,X应该是什么?

2 个答案:

答案 0 :(得分:2)

我没有阅读CodeIgniter源代码,但可以合理地假设$query是某种代表db结果的类,所以很可能是return $this;

它也可能是:return new Db_ResultSet($data)或类似的东西。

答案 1 :(得分:1)

该功能位于/system/database/DB_driver.php:244

在成功的查询中,它为应用程序的数据库配置中设置的数据库驱动程序(可能)返回一个新的db结果对象。

ex:CI_DB_mysql_result(位于/system/database/drivers/mysql/mysql_result.php);

  

换句话说,X应该是什么?

$driver         = $this->load_rdriver();
$RES            = new $driver();
$RES->conn_id   = $this->conn_id;
$RES->result_id = $this->result_id;

来自DB_driver.php:366