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

Опубликовано: 06.09.2018

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

Урок 04. PHP - ООП. Статические (static) свойства и методы.

Для того чтобы воспользоваться методами и членами класса, не обязательно объявлять его объект, достаточно ключевого слова "static" которое сделает их доступными без объявления объекта класса. В этом случае обращение к компоненту класса выполняется при помощи оператора видимости "::". Особенность статических членов классов это возможность их инициализации непосредственно при объявлении.



Пример объявления статического метода класса:

class NewMyStatic { public static $NewMyStatic = '"Статический член (переменная)"'; } // Обращение к статическому члену класса "NewMyStatic" без объявления объекта класcа "new NewMyStatic()"; echo NewMyStatic::$NewMyStatic;

А так же к статическим членам класса нельзя обращаться через префикс "$this->" и они не отображаются при вызове дампа.


Модуль 28. Модификатор static. Статические классы и члены классов в языке C#

Сейчас приведём модифицированный вариант изменения значения статического члена класса "$NewMyStatic", метод "object_set()" которого изменит значение статического члена "$NewMyStatic" при помощи префикса "$this->".

Пример использования префикса "$this->" для изменения значения статического члена:

class NewMyStatic { public static $NewMyStatic = 5; public function object_set($_value) { $this->NewMyStatic = $_value; } } $new_class = new NewMyStatic(); echo '<pre>'; print_r($new_class); echo '</pre>'; $new_class->object_set(10); echo NewMyStatic::$NewMyStatic; echo '<pre>'; print_r($new_class); echo '</pre>';

Результат выведет следующие строки:

NewMyStatic Object ( ) 5 NewMyStatic Object ( [NewMyStatic] => 10 )

Данная попытка обратиться к статическому члену класса "NewMyStatic" через префикс "$this->" приводит к созданию нового члена класса, при этом, не изменяя значение статического члена. Это связано с тем, что в отличии от других членов класса, статические члены являются общими для всех объектов класса, а это означает, что изменение значения статической переменной одного объекта отражается на значение данной переменной всех остальных объектов.

Статическими могут быть и методы класса. Для создания статического метода также используется слово "static", а для обращения оператор видимости "::".

Объявим статический метод:

class NewMyStatic { public static mymethod_static() { return 'Осуществился вызов статического метода класса "NewMyStatic"'; } } echo NewMyStatic::mymethod_static(); // Вызов статического метода;

tillad

7108

rss