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

时间:2013-12-03 20:54:19

标签: php class oop variable-declaration dynamic-typing

在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这样的动态类型语言中,这给我一个检查类时的即时概述,因为我们不能输入提示成员声明。否则我觉得我不得不求助于匈牙利表示法,以便在我的代码中有所了解。

1 个答案:

答案 0 :(得分:1)

声明属性的默认值没有任何问题,相反,我认为这是非常好的做法。这就是语法的用途。性能方面它应该更快,因为这些值在解析期间只是静态分配一次。