考虑这些类:
class Test_A {
protected $value;
public function __construct() {
$this->value = null;
}
}
class Test_B {
protected $value = null;
public function __construct() {
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道哪一种被认为是初始化对象属性的最佳实践以及原因。
两者在语法上都是正确的,并且根据 PHP 手册,只有当值不依赖于任何计算时才可以在声明时初始化属性(受保护的 $a = a + b;)。如果它确实依赖于某些计算或运行时值,则应在类构造函数中对其进行初始化。
参考: http: //www.php.net/manual/en/language.oop5.properties.php(参见示例#1)
记住这一点,在声明时总是初始化属性是否是一个好习惯,除非它们实际上需要计算?