【发布时间】:2010-12-14 13:29:27
【问题描述】:
您不能在 PHP 类中放置两个具有唯一参数签名的 __construct 函数。我想这样做:
class Student
{
protected $id;
protected $name;
// etc.
public function __construct($id){
$this->id = $id;
// other members are still uninitialized
}
public function __construct($row_from_database){
$this->id = $row_from_database->id;
$this->name = $row_from_database->name;
// etc.
}
}
在 PHP 中最好的方法是什么?
【问题讨论】:
-
我也梦想命名构造函数和方法重载+1
-
在我的例子中,我想要一个受保护的构造函数,它比公共的参数少一个 - 为了标准化它的工厂方法。我需要一个能够创建自身副本的类,并且工厂位于抽象类中,但具体类可能具有需要第二个参数的构造函数 - 抽象类不知道。
-
不是真正有价值的东西,而是我前段时间偶然发现的东西:date_c.php 中的 DatePeriod 类有多个构造函数。但我不知道 PHP 在内部用它做了什么。
标签: php constructor multiple-constructors