是否需要声明 class 属性?

Is needed declare class atributtes?

声明中

class MyClass
{

  public $someVar;

  function __construct()
  {
    $this->someVar = 'some value';
  }
}

不申报

class MyClass
{
  function __construct()
  {
    $this->someVar = 'some value';
  }
}

这两种方式都有效,但我想知道性能甚至模式是否存在差异。

是的。因为当您在 class 声明中声明属性时,您获得了净收益:

  1. 查看其他开发人员可以找到他的属性的声明 可以使用 ( 如果您不想让其他开发人员使用它们 - 将它们声明为受保护/私有的,见下文)
  2. 你可以设置 手动可见性标志 - 最佳实践默认设置为私有并且 仅在需要时更改访问级别(更好地使用 geters/seters)
  3. 您和其他开发者在 IDE
  4. 中获得了自动完成功能