Приднестровская поддержка XOOPS
К методам или свойствам, объявленным как статические (static), можно получить доступ без обязательного предварительного создания экземпляра класса; вы просто предоставляете имя класса, дополняете его оператором разрешения области видимости и указываете имя свойства или метода.
Одно из главных преимуществ использования статических свойств состоит в том, что содержащиеся в них значения хранятся на протяжении всего времени жизни сценария. Это означает, что если вы измените статическое свойство, а затем обратитесь к нему из сценария позднее, то по-прежнему обнаружите там сохраненное значение.
Чтобы продемонстрировать это, добавим в класс MyClass статическое свойство $count и статический метод plusOne(). Организуем также цикл do...while для вывода увеличивающегося значения счетчика $count, пока оно не превышает 10.
<?php
class MyClass
{
public $prop1 = "Это свойство класса!";
public static $count = 0;
public function __construct()
{
echo 'Класс "', __CLASS__, '" инициирован!<br />';
}
public function __destruct()
{
echo 'Класс "', __CLASS__, '" уничтожен.<br />';
}
public function __toString()
{
echo "Используем метод toString: ";
return $this->getProperty();
}
public function setProperty($newval)
{
$this->prop1 = $newval;
}
private function getProperty()
{
return $this->prop1 . "<br />";
}
public static function plusOne()
{
return "Значение счетчика " . ++self::$count . ".<br />";
}
}
class MyOtherClass extends MyClass
{
public function __construct()
{
parent::__construct();
echo "Новый конструктор в классе " . __CLASS__ . ".<br />";
}
public function newMethod()
{
echo "Новый меиод в классе " . __CLASS__ . ".<br />";
}
public function callProtected()
{
return $this->getProperty();
}
}
do
{
// Вызвать plusOne без создания экземпляра MyClass
echo MyClass::plusOne();
} while ( MyClass::$count < 10 );
?>
Загрузив этот сценарий в браузер, вы получите следующий результат.
Отправитель | Нити |
---|
18 пользователь(ей) активно (4 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 18 далее... |