2017-01-18 2 views
2

Когда я определяю свойство массива со значением по умолчанию:В чем преимущество сильной инициализации свойства static в php?

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

мой IDE, PhpStorm, предупреждает меня из-за инспекции кода, который:

Это свойство initializatioin, кажется, довольно «тяжелый», вероятно, он должен быть определен как статический.

Но почему это должно быть? Какая польза от статической инициализации?

ответ

0

Я считаю, что он не связан с PHP, даже когда вы запрашиваете конкретный случай в PHP.

Ваша IDE предупреждает вас, потому что, возможно, это свойство, содержащее массив, не может быть изменено в течение всего жизненного цикла экземпляра класса. Таким образом, вы не хотите создавать экземпляр всего класса с помощью нового массива каждый раз. То есть вы можете превратить так называемое свойство в статическое свойство и избегать множества экземпляров одного и того же массива и обмениваться данными со всеми экземплярами класса Foo.

BTW, если такой массив будет изменен в течение срока службы данного экземпляра Foo, вы не хотите, чтобы это свойство было static, если вы не хотите, чтобы один экземпляр мог изменить его для всех других экземпляров за мгновение во время.

Смежные вопросы