【发布时间】:2017-11-28 12:12:33
【问题描述】:
在声明属性时可以为属性设置初始值。这是一个好习惯还是我应该在构造函数中这样做?或者,只要我在任何地方始终如一地做同样的事情,这并不重要?
为了清楚起见,我在说什么,这里是一个例子:
class ClassA{
private $propertyA;
public function __construct(){
$this->propertyA = "value: A";
}
}
或
class ClassB{
private $propertyB = "value: B";
public function __construct(){
}
}
【问题讨论】:
-
在创建该类的任何对象时,始终在
constructorbcoz 中设置初始值,然后使用默认值自动初始化变量... -
如果是纯静态赋值,在属性定义中设置;如果它们依赖于运行时信息,或者基于传递给构造函数的参数,则在构造函数中设置它们
-
我不同意@YashParekh,你可以看看流行的库,看看属性是在正文中设置的,而不是在 __cosnstruct() 中设置的。
-
我也肯定会选择第二个变体。恕我直言,它更干净,而且它对 phpDocumentor 等文档解析工具有意义。