在PHP(和其他动态类型语言)中,在类成员声明中存储与类型相关的默认值是不是一种糟糕的做法?它会以任何方式影响性能吗?
PHP示例我的意思是:
class Example {
protected $someNumber = 0;
protected $someThings = [];
protected $someString = "";
}
而不是在构造函数中设置默认值,或者在实际使用成员之前根本不设置任何内容。
class Example {
// members are NULL by default
protected $someNumber;
protected $someThings;
protected $someString;
__construct() {
$this->someNumber = 0;
$this->someThings = [];
$this->someString = '';
}
}
当涉及到用于存储对象以外的值的变量时,我有在声明中指定默认类型值的习惯。在像PHP这样的动态类型化语言中,这让我在检查类时可以立即进行概述,因为我们不能对成员声明进行类型提示。否则,我觉得我将不得不求助于匈牙利符号,以便在我的代码中有一些意义。
为属性声明默认值没有错,相反,我认为这是一种非常好的做法。这就是语法的作用。在性能方面,如果有什么不同的话,它应该更快,因为在解析过程中只静态分配一次值。