2010-02-16 42 views
0

请考虑这个例子。 (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

你最近的评论表明您将只保留一个结果在阵子设置。既然如此,我建议把它保存在对象本身(作为对象的数据成员)。

而且,因为你只围绕保持一个结果集,则可能您的类重命名为更具描述性的。 “数据库”并不完全总结它。它是一个“ResultSet”。如果它的结果​​集的特定类型考虑的命名它,因此它反映的数据你取的类型。

1

根据您的代码,我认为返回结果而不是将其设置为数据库类的属性是有意义的。数据库(原来的连接)在其整个生命周期中将有多个结果集。因此,如果要使用同一对象进行多个查询,将结果设置为类属性并不合理。

+0

虽然数据库连接可能有多个结果集,我只会保存最近的结果,并且以后调用的方法也会使用这个。所以我还不清楚:S – shxfee 2010-02-18 14:06:29

0

我不认为财产Database所属,所以请执行下列操作之一:

  1. 返回查询的是
  2. 返回其已设为您的查询QueryObject,但给你对查询结果执行的其他方法(例如:分页,过滤)