在PHP中对属性进行大量初始化静态有什么好处?

时间:2017-01-18 17:21:55

标签: php oop properties initialization

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

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

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

  

这个属性初始化似乎非常重,可能应该定义为静态。

但为什么要这样呢?使这种初始化静态有什么好处?

1 个答案:

答案 0 :(得分:0)

我相信即使你在PHP中询问特定情况,它也与PHP无关。

您的IDE会警告您,因为在类实例的生命周期中,可能不会修改包含数组的此属性。因此,您不希望每次都使用新数组实例化整个类。也就是说,您可以将所谓的属性转换为静态属性,并避免使用相同数组的多个实例,并与所有Foo类实例共享一个。

BTW,如果在给定Foo实例的生命周期内修改此类数组,则不希望此属性为static,除非您希望一个实例可以修改它对于所有其他时刻的情况。