PHP. ООП. Статические свойства и методы
В PHP есть поддержка статических свойств и методов. Для объявления свойства или метода статическим в php есть ключевое слово static.
Обращение к статическим свойствам и методам не предполагает создания объекта. При попытке обратиться к статическому свойству через объект класса вы получите ошибку. Что касается статических методов, то, начиная с php 5.3, допустимо обращение к статическому свойству в контекст объекта.
Внутри статического свойства нельзя обращаться к свойству через $this. Собственно идея статических свойств и заключается в этом — статические свойства как бы «прикрепляются» к классу. $this предполагает некую динамику — обращение к чему-либо в контексте вызовы объекта.
Также рассмотрена ситуация обращения к собственным и родительским статическим свойствам класса. Обращение к статическому свойству класса реализуется с помощью ключевого слова self. Если надо обратиться к родительскому статическому свойству, то следует использовать ключевое слово parent.
Внутри статического свойства нельзя обращаться к свойству через $this. Собственно идея статических свойств и заключается в этом — статические свойства как бы «прикрепляются» к классу. $this предполагает некую динамику — обращение к чему-либо в контексте вызовы объекта.
Также рассмотрена ситуация обращения к собственным и родительским статическим свойствам класса. Обращение к статическому свойству класса реализуется с помощью ключевого слова self. Если надо обратиться к родительскому статическому свойству, то следует использовать ключевое слово parent.
Код урока
<?php
/*
** Статические свойства и методы
**/
class Man {
public static $name = "Камиль";
public $surname = "Абзалов";
public static function staticMethod()
{
echo "Вывод статического свойства в статическом методе " . self::$name;
}
}
class Kamil extends Man {
public static $name = "Камиль Абзалов";
public static function staticMethod() {
echo "Вывод статического свойства в статическом метода " . self::$name;
echo "<br>";
echo "Вывод родительского статического свойства в дочернем статическом методе " . parent::$name;
}
}
$man = new Man();
$kamil = new Kamil();
print_r($man);
echo "<br>";
print_r($kamil);
echo "<br>";
echo Man::$name;
echo "<br>";
echo Kamil::$name;
echo "<br>";
echo Man::staticMethod();
echo "<br>";
echo Kamil::staticMethod();
echo "<br>";
0 Комментариев