在类成员声明中存储默认类型值


Storing default type value in class member declarations

在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这样的动态类型化语言中,这让我在检查类时可以立即进行概述,因为我们不能对成员声明进行类型提示。否则,我觉得我将不得不求助于匈牙利符号,以便在我的代码中有一些意义。

为属性声明默认值没有错,相反,我认为这是一种非常好的做法。这就是语法的作用。在性能方面,如果有什么不同的话,它应该更快,因为在解析过程中只静态分配一次值。