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

В отличие от простых, статические поля однообразны для всех экземпляров класса и изменение статического свойства приведёт к его трансформации для всех экземпляров класса. Обращение к статическим участникам в класса производится при помощи главного слова self, а при их объявлении пишется главное слово static. Обращение к статическим участникам извне класса производится с указанием имени класса. Для доступа к ним употребляется знак ‘::’. Статические способы не имеют доступ к простым (нестатическим) участникам, поскольку в другом случае было бы неясно к какому экземпляру класса относятся эти нестатические члены, к каким обращается статический способ.

Пример:

В примере показана работа со статическим полем $loverCount, обращение к нему как в класса, так и за его пределами. При создании нового экземпляра класса, значение статического поля возрастает. Статический способ вывод сообщение – использование $this недопосутимо.

Задание 11

1. Обрисуйте в классах User и SuperUser статические особенности для подсчета количества созданных объектов;

2. Присвойте этим особенностям начальные значения (0);

3. В конструкторах инкрементируйте значения данных особенностей;

4. По окончании создания экземпляров классов User и SuperUser выведите в браузер количество тех и других объектов.

Оператор instanceof

Данный оператор возвращает булево значение, показывающие относится ли объект к заданному классу либо нет. Синтаксис этого оператора:

$object instanceof ClassName;

Наряду с этим данный оператор возвращает true кроме того в случае если слева стоит экземпляр класса-наследника от класса, имя которого указанно справа.

Оператор instanceof комфортно использовать, в то время, когда нужно убедится в наличии у экземпляра нужных данных либо функционала, каковые свойственны экземпляром какого-нибудь класса.

Пример:

Задание 12

1. Обрисуйте функцию checkObject(), которая принимает в качестве входящего параметра объект;

2. Удостоверьтесь в надежности Ваш объект, применяя следующие условия: В случае если объект есть экземпляром класса SuperUser, выводите сообщение, что этот пользователь владеет правами администратора;

3. В случае если объект есть экземпляром класса User, выводите сообщение, что этот пользователь есть простым пользователем. В случае если объект не есть ни тем, ни вторым, выводите сообщение, что этот пользователь — малоизвестный пользователь.

Способ __toString()

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

Пример:

Задание 13

1. Создайте свойство objNum, которое будет хранить порядковый номер объекта.

Поразмыслите, где лучше его создать?

2. Внесите трансформации в классе User (быть может и в SuperUser?), каковые будут присваивать свойству objNum, порядковый номер объекта.Поразмыслите, где и как лучше это сделать?

3. В классе User (быть может и в SuperUser?) обрисуйте способ __toString(). Этот способ обязан возвращать строчок в формате «Объект #objNum: name». К примеру: «Объект #3: Василий Пупкин»;

4. Попытайтесь преобразовать один из созданных Вами объектов в строчок.

Функция _autoload()

Многие разработчики, пишущие объектно-ориентированные приложения, создают один файл, в котором содержится определение класса. Весьма некомфортно писать в начале каждого скрипта долгий перечень включаемых файлов по одному на любой класс.

Начиная с PHP 5 в этом больше нет необходимости. Вы имеете возможность выяснить функцию __autoload() , которая машинально будет вызываться при применения класса, что не был выяснен выше. Это разрешает сделать автоматическую подгрузку файлов с описанием классов (в тот момент, в то время, когда мы начинаем применять данный класс, , если класс в сценарии не употребляется- то и файл с его описанием не будет подключаться) и избавиться от множественных руководств include.

Пример:

Задание 14

1. В директории oop создайте файл User.class.php;

2. Перенесите описание класса User из файла users.php в файл User.class.php;

3. В директории oop создайте файл SuperUser.class.php;

4. Перенесите описание класса SuperUser из файла users.php в файл SuperUser.class.php;

5. Посторите те же действия для класса AUser и интерфейса ISuperUser;

6. В файле users.php(этот файл) обрисуйте функцию __autoload(), которая машинально присоединяет файлы с описанием классов к файлу users.php.

МОДУЛЬ 3

Задание 15

Создать класс-оболочку для работы с БД, минимальный функционал которого разрешает установить соединение с сервером и подключиться к БД, выполнить запросы SELECT, UPDATE, DELETE. Покажите пример работы.

ООП для начинающих PHP. методы и Статические свойства.Где используют.


Также читать:

Понравилась статья? Поделиться с друзьями: