【问题标题】:What is the benefit of making heavy initialization of a property static in php?在 php 中对属性进行大量静态初始化有什么好处?
【发布时间】:2017-06-03 04:50:01
【问题描述】:

当我用默认值定义数组属性时:

class Foo {
    protected $leArray = [
        'foo',
        'bar',
        'baz',
    ];
}

由于代码检查,我的 IDE phpstorm 警告我:

这个属性初始化好像挺“重”的,应该是定义成静态的吧。

但为什么要这样做?将这样的初始化设为静态有什么好处?

【问题讨论】:

    标签: php oop properties initialization


    【解决方案1】:

    我相信它与 PHP 无关,即使您询问 PHP 中的特定情况。

    您的 IDE 会警告您,因为在类实例的生命周期内可能不会修改包含数组的此属性。因此,您不想每次都用一个新数组来实例化整个类。也就是说,你可以把所谓的属性变成一个静态属性,避免同一个数组的多个实例,共享一个给所有Foo类实例。

    顺便说一句,如果此类数组将在给定 Foo 实例的生命周期内被修改,您不希望此属性为 static,除非您希望一个实例可以为所有其他实例修改它一会儿。

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 2017-12-07
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多