static php методы

Статические свойства и методы класса

Статические переменные — переменные, которые внутри функции сохраняют свое значение. Соответственно, могут быть статические свойства и методы класса. Эти свойства и методы принадлежат только своему классу (как и константы класса), и не принадлежат объекту класса. Т.е. они общие для всех объектов, через -> к ним обратиться нельзя.

Пример:

class CookieLover {
static $loversCount = 0;//статическое свойство
function __construct(){++self::$loversCount;} // увеличиваем на 1
static function welcome(){ //статический метод
echo 'Добро пожаловать в клуб любителей булочек!';
//Никаких $this внутри статического метода!
}}
$vasyaPupkin = new CookieLover(); //первый объект
$frosyaBurlakova = new CookieLover(); //второй объект
print ('Текущее количество любителей булочек: '.
CookieLover::$loversCount);
print (CookieLover::welcome());

Объявляем статическое свойство через ключевое слово static (строка №2). В конструкторе все это увеличиваем на единицу (строка №3), т.е.изнутри класса к статическому свойтсву обращаемся через self двойное двоеточие :: (как у константы класса). Далее создаем два объекта (строки №8,9). Далее извне класса обращаемся к статическому свойству (строки №10,11) через двойное двоеточие.

Также и со статическим методом (строка №4), который задается через ключевое слово static. Внутри этого метода не может использоваться никаких $this, т.е. этот метод не может вызываться через ->. И обращаемся к нашему методу через двойное двоеточие (строка №12).




Добавить комментарий

Ваш e-mail не будет опубликован.