PHP. ООП. Статические свойства и методы

Главная » Видеоуроки » PHP » PHP. ООП. Статические свойства и методы
В PHP есть поддержка статических свойств и методов. Для объявления свойства или метода статическим в php есть ключевое слово static.
Обращение к статическим свойствам и методам не предполагает создания объекта. При попытке обратиться к статическому свойству через объект класса вы получите ошибку. Что касается статических методов, то, начиная с php 5.3, допустимо обращение к статическому свойству в контекст объекта.
Внутри статического свойства нельзя обращаться к свойству через $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 Комментариев

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.

Pin It on Pinterest

Share This