Я работаю над веб-приложением, которое видит десятки одновременных пользователей в секунду. У меня есть класс, который будет повторяться много раз в одной и той же загрузке страницы. В этом классе у меня есть некоторые свойства, которые всегда будут одинаковыми для каждого объекта, поэтому я думаю об объявлении этих свойств как static
, чтобы уменьшить память, которая будет использоваться при создании нескольких экземпляров этого класса во время того же запроса страницы.
Будет ли это использовать меньше памяти для этого приложения, потому что PHP может хранить значение статических свойств только один раз? Будет ли это экономить память у одновременных пользователей или только внутри каждого процесса PHP?
Как это работает для методов? Если это означает, что объекты могут перерабатывать одни и те же методы, то почему бы все методы класса не объявлялись статическими, если вы пытаетесь сохранить их в памяти?
Я не чувствую себя полностью комфортно с тем, почему и когда объявлять свойство или метод static, но я понимаю, что объявление их как статического позволяет им получить доступ без создания экземпляра объекта класса (это похоже на взломать... эти методы и свойства должны быть где-то еще... нет?). Меня особенно интересует, как объявление static
влияет на использование памяти, чтобы как можно меньше использовать память на моем веб-сервере... и в целом, чтобы лучше понять, что происходит.