Навіщо потрібні в php статичні методи і властивості stack overflow російською

Найбільший ефект це дає, коли дійсно потрібно реалізувати роботу фабрики. Наприклад: потрібно отримати новий асоціативний масив даних, на основі одного або двох масивів.

Кожен елемент остаточного масиву отримуємо за допомогою різних складних перетворень в різних функціях. Так ось, щоб не плодити різні передачі і присвоєння даних у функціях розрахунку, дуже зручно використовувати static. це економить пам'ять, час на різних присвоєння тощо.

Якщо не використовувати static. то функції доведеться писати ось так:

І таким чином буде виглядати кожна функція без static. Дуже корисна для побудови календаря, різних матриць і т.п.

відповідь дан 16 Березня о 10:03

використання статичних методів в php абсолютно нічим не відрізняється від використання статичних методів в інших мовах програмування.

Наприклад їх можна використовувати ЗАМІСТЬ паттерна Сінглтон.

На ваше запитання складно відповісти. Статичний контекст - це інструмент, а коли його застосовувати і обгрунтоване його застосування в даній задачі - це вже більш суб'єктивні рамки, які залежать швидше від вас.

Статичний контекст можна розглядати з (як мінімум) двох точок зору: як область для обслуговування деякого функціоналу, пов'язаного зі специфікою класу (ті самі Сінглтон, фабричні методи і лічильники примірників, зберігання метаданих), так і як область для обслуговування функціоналу, що не прив'язаного до конкретного екземпляру (наприклад, будь-який метод, який не потребує стану, можна реалізувати в статичному виконанні, Math :: factorial (12) простіше, ніж (new Math ()) -> factorial (12) і вимагає менше витрат на реалізацію).

І те, і інше можна реалізувати без статики (проте, як можна судити за прикладом вище, це не завжди практично), тому не можна сказати, що статика існує заради цих речей. Якщо ви намагаєтеся знайти сферу застосування, в якій вона незамінна, то я не впевнений, що це можливо; знову ж таки, це просто інструмент для реалізації.

Схожі статті