Объявление свойств и методов класса статическими позволяет обращаться к ним без создания экземпляра класса.
Пример статического метода и свойсва.
<?php
class Foo {
// статическое свойство
static public $aStaticNumber = 0;
// статический метод
public static function aStaticMethod() {
// ...
}
}
?>
Поскольку доступ к статическому элементу осуществляется через класс, а не экземпляр объекта, вам не нужна переменная, которая ссылается на объект. Вместо этого используется имя класса, после которого указывается два двоеточия "::".
<?php
Foo::$aStaticNumber;
Foo::aStaticMethod();
?>
Статические элементы имеют ряд полезных особенностей:
- они доступны из любой точки сценария. Это означает, что можно вызывать функции, не передавая экземпляр класса от одного объекта другому или сохраняя экземпляр объекта в глобальной переменной.
- статическое свойство доступно каждому экземпляру объекта этого класса, поэтому можно определить значения, которые должны быть доступны всем объектам данного типа.
- позволяют не создавать экземпляр объекта ради вызова статической функции.