请考虑这个例子。 (PHP)
class Database{
private $result;
private $conn;
function query($sql){
$result = $this->conn->query($sql);
// Set the Database::$result ?? Or return the value and avoid setting property?
return $result;
// $this->result = $result;
}
}
这两种方法的优点是什么?它们适用于哪里?
答案 0 :(得分:1)
基于您的代码,我认为返回结果而不是将其设置为数据库类的属性是有意义的。数据库(实际连接)在其生命周期内将具有多个结果集。因此,如果要使用同一个对象进行多个查询,那么将结果设置为类属性就没有意义。
答案 1 :(得分:0)
答案 2 :(得分:0)
您最近的评论表明,您一次只会保留一个结果集。在这种情况下,我建议将其保存到对象本身(作为对象的数据成员)。
此外,由于您只保留单个结果集,因此可以将类重命名为更具描述性的类。 “数据库”并没有完全概括它。这是一个“ResultSet”。如果它是特定类型的结果集,请考虑命名它,以便它反映您正在获取的数据类型。
答案 3 :(得分:0)
我认为该属性不属于Database
,因此请执行以下操作之一:
QueryObject
,但为您提供了对查询结果执行的其他方法(例如:分页,过滤)