Спочатку ми створюємо новий об'єкт, як зазвичай - новий екземпляр класу test. Потім викликаємо функцію someStaticMethod () і отримуємо очікуємо результат.
Однак використовувати статичні змінні варто з великою обережністю. Слід дотримуватися ряду правил, які допоможуть уникнути проблем в майбутньому.
Обмежте область використання
Використовуйте статичні функції тільки в тому, випадку якщо ви впевнені що ніякий інший код не використовує такі ж статичні функції.
Нам необхідно зрозуміти, чи була проведена оплата чи ні, припустимо для того, щоб показати визначити - що платить клієнт чи ні і вже далі вирішувати, що робити з цією інформацією.
Перш за все ми створюємо статичну змінну $ paymentProceedOnce для визначення поточного статусу клієнта - чи заплатив він хоч раз. Відразу зазначу про те, що наш клас ShoppingCart в реальному проекті буде складатися з безлічі модулів, кожен з них буде пов'язаний між собою. На даному етапі ми не пишемо справжній функціонал, а всього лише висновок значення в браузер.
Припустимо у нас є метод sellProduct (). Його виклик проходить далі по ланцюжку і викликає закриту функцію doSell. Саме після успішно проведеної doSell, ми заносимо в значення $ paymentProceedOnce рядок «TRUE».
Здавалося б, і що тут такого? Ми всього лише беремо змінну і присвоюємо їй значення. «Подумаєш», скаже неуважний читач. І буде приємно здивований наступного моменту.
Давайте розглянемо сам виклик класу: