Ключевое слово static
Эта страница описывает использование ключевого слова
static
для определения статических методов и свойств. static также
может использоваться для определения
статических переменных, определения статических анонимных функций
и позднего статического связывания.
Для получения информации о таком применении ключевого слова static обратитесь по вышеуказанным страницам.
Объявление свойств и методов класса статическими позволяет обращаться к ним
без создания экземпляра класса.
К ним также можно получить доступ статически в созданном экземпляре объекта класса.
Статические методы
Так как статические методы вызываются без создания экземпляра класса,
то псевдопеременная $this недоступна внутри статических методов.
Вызов нестатических методов статически вызывает ошибку Error.
До PHP 8.0.0 вызов нестатических методов статически был объявлен устаревшим
и вызывал ошибку уровня E_DEPRECATED.
Пример статического метода
]]>
Статические свойства
Доступ к статическим свойствам осуществляется с помощью оператора разрешения области видимости
(::), и к ним нельзя получить доступ через оператор объекта (->).
На класс можно ссылаться с помощью переменной.
Значение переменной в таком случае не может быть ключевым
словом (например, self, parent и
static).
Пример статического свойства
staticValue() . "\n";
print $foo->my_static . "\n"; // Не определено свойство my_static
print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n";
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>
]]>
&example.outputs.8.similar;