# Статические свойства и методы
Статические свойства и методы хранятся в области памяти класса, поэтому не требуют создания объекта для своего использования
Внутри класса обращаемся к свойствам
class Foo {
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
print Foo::$my_static . "\n";
$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n"; // Не определено свойство my_static
print $foo::$my_static ; // Начиная с PHP 5.3.0
Пример статического метода
class Foo {
public static function aStaticMethod() {
// ...
}
}
Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // Начиная с PHP 5.3.0
То есть мы можем вызывать статический метод без создания объекта от класса
Внутри статического метода мы можем обращаться только к статическим свойствам, через конструкцию self
Полезное чтиво:
- О паттерне Singleton в PHP http://dron.by/post/pattern-proektirovaniya-singleton-odinochka-na-php.html
Практика:
- Сделать класс, который бы считал количество созданных от него объектов
- В предыдущем задании учитывать клонирование и удаление объектов