我们是否必须在构造函数中声明所有属性?

时间:2018-07-25 13:15:56

标签: php oop

我是OOP的新手。我们是否必须在构造函数中声明所有属性? 例如:

  private $_conn;
  private $_limit;
  private $_page;
  private $_query;
  private $_total;

public function __construct($conn, $query){

$this->_conn = $conn;
$this->_query = $query;

$rs = $this->_conn->prepare($this->_query);
$rs->execute();
$this->_total = $rs->rowCount();
}

public function getData($page = 1, $limit = 10){

$this->_limit = $limit;
$this->_page  = $page;

if ($this->_limit == 'all'){
    $query = $this->_query;
} else {
    $query = $this->_query." LIMIT ".(($this->_page - 1) * $this->_limit).", $this->_limit";
}
$rs = $this->_conn->prepare($query);
$rs-> execute();

while ($row = $rs->fetch(PDO::FETCH_ASSOC)){
    $results[] = $row;
}

我从互联网上的某个地方得到的。编码器未在构造函数中声明$ _limit和$ _page属性。如果不使用getData方法,是否不创建属性?我们可以将此逻辑用于Java,C#,C ++等其他编程语言吗?

3 个答案:

答案 0 :(得分:2)

每个方法/函数(包括对象的构造函数)都应仅声明将要使用的变量。

答案 1 :(得分:1)

不必在构造函数中声明所有成员。您甚至可以将其留空

答案 2 :(得分:1)

您不需要在构造函数中声明所有成员,这不是必须的,但是声明它们也是一种不错的做法。它是由你决定。两种方法都很好。