我最近被介绍过方法链,我不确定我在这里做的是非法的,或者我做错了.我有一个数据库类,如:
class Database
{
private $connection;
private $resultset, $last_query, $current_row;
function __construct()
{
$this->connect();
}
public function connect()
{
// Connect to the database
}
public function query($query)
{
$this->last_query = $query;
$this->resultset = mysql_query($query, $this->connection);
}
public function fetchObject()
{
$this->current_row = mysql_fetch_object($this->resultset);
return $this->current_row;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用它像:
$db->query("SELECT * FROM users WHERE name='JimmyP'")->fetchObject();
Run Code Online (Sandbox Code Playgroud)
我也试过了
$db->fetchObject()->query("SELECT * FROM users WHERE name='JimmyP'");
Run Code Online (Sandbox Code Playgroud)
但我得到错误:"在非对象上调用成员函数fetchObject()"
有人可以向我解释我在这里做错了什么,因为它与使用方法链接有关.谢谢.
在query(),你需要返回,$this否则没有什么可以在函数返回时链接它
public function query($query)
{
$this->last_query = $query;
$this->resultset = mysql_query($query, $this->connection);
return $this; // <- here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |