Статические члены класса

При использовании классов и объектно-ориентированного подхода также можно создавать статические члены класса. Такие члены существуют в единственном экземпляре и разделяются всеми экземплярами (объектами) одного и того же класса. В этом и заключается весь смысл их существования.

Статическое свойство класса недоступно через обращение $this->property или $obj‑>property. Вместо этого следует использовать немного необычный синтаксис:

ИмяКласса: :$property или self: : $property(при вызове из метода класса).

Статический метод во время своего запуска не получает ссылку $this, поэтому он может работать только со статическими членами (свойствами и другими методами) своего класса.

// класс, который "считает", сколько его экземпляров существует в текущий момент

<?php ## Использование статических членов класса,

class Counter {

// Скрытый статический член класса — общий для всех объектов,

private static $count = 0;

// Конструктор увеличивает счетчик на 1.

public function __construct() { self::$count++; }

// Деструктор же — уменьшает.

public function __destruct() { self::$count—; }

// Статическая функция, возвращает счетчик объектов,

public static function getCount() { return self::$count; }

)

// Создаем б объектов.

for ($objs=array(), $i=0; $i<6; $i++)

$objs[] = new Counter();

echo "Сейчас существует {$objs[0]->getCount()} объектов.<br>";

// Удаляем один объект.

$objs[5] = null;

// Счетчик объектов уменьшится!

echo "А теперь — {$objs[0]->getCount()} объектов.<br>";

// Удаляем все объекты.

$objs = array();

// Другой способ вызова статического метода — с указанием класса.

// Это очень похоже на вызов функции из библиотеки,

echo "Под конец осталось — ".Counter::getCount()." объектов.<br>";

?>








Дата добавления: 2015-08-26; просмотров: 552;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.