Когда я определяю свойство массива со значением по умолчанию:
class Foo {
protected $leArray = [
'foo',
'bar',
'baz',
];
}
моя IDE, phpstorm, предупреждает меня из-за проверки кода, что:
Это свойство initializatioin представляется довольно «тяжелым», вероятно, его следует определить как статическое.
Но зачем это? Какая польза от статической инициализации?
Я считаю, что это не связано с PHP, даже если вы просите конкретный случай в PHP.
Ваша IDE предупреждает вас, потому что, возможно, это свойство, содержащее массив, может не изменяться в течение времени жизни экземпляра класса. Таким образом, вы не хотите каждый раз создавать экземпляр целого класса с новым массивом. То есть вы можете превратить так называемое свойство в статическое свойство и избегать множества экземпляров одного и того же массива Foo
экземпляры классов.
Кстати, если такой массив будет изменен в течение времени жизни данного Foo
Например, вы не хотите, чтобы это свойство было static
, если только вы не хотите, чтобы один экземпляр мог изменить его для всех других экземпляров в определенный момент времени.
Других решений пока нет …