PHP - Статические свойства
Ключевое слово static также создаёт статические свойства.
Статическое свойство можно прочитать напрямую, вообще не создавая объект его класса.
Объявление статического свойства
Чтобы объявить статическое свойство, добавьте к нему ключевое слово static:
Синтаксис объявления статического свойства
static ставится перед именем свойства:
<?php
class ClassName {
public static $statProp = "PromptCookbook";
}
?>
Доступ к статическому свойству
Чтение статического свойства состоит из трёх частей: имя класса, двойное двоеточие (::) и имя свойства.
В следующем примере объявляется статическое свойство с именем $value, которое выводится через echo напрямую в такой форме. Объект не нужен:
Пример
Прочитайте статическое свойство через имя его класса:
Вывод: PHP-скрипт
<?php
class pi {
// статическое свойство
public static $value = 3.14159;
}
// Получаем статическое свойство напрямую
echo pi::$value;
?>
Синтаксис обращения к статическому свойству
Общая форма обращения к статическому свойству:
<?php
ClassName::$statProp;
?>
PHP - Подробнее о статических свойствах
Статические и нестатические свойства могут находиться в одном классе. Метод этого класса обращается к статическому свойству, указывая self и двойное двоеточие (::) перед именем свойства:
Пример
Метод читает статическое свойство своего класса через self:
Вывод: PHP-скрипт
<?php
class pi {
public static $value=3.14159;
public function staticValue() {
return self::$value;
}
}
$pi = new pi();
echo $pi->staticValue();
?>
Пример
Внутри дочернего класса обращайтесь к статическому свойству родителя с помощью ключевого слова parent. В примере оно также читается напрямую через имя дочернего класса:
Вывод: PHP-скрипт
<?php
class pi {
public static $value=3.14159;
}
class x extends pi {
public function xStatic() {
return parent::$value;
}
}
// Получаем значение статического свойства напрямую через дочерний класс
echo x::$value;
// или получаем значение статического свойства через метод xStatic()
$x = new x();
echo $x->xStatic();
?>