PHP перегрузка

В этой заключительной части учебника про ООП, будет рассказываться что такое в PHP перегрузка или магические методы, что это такое и как с этим работать, было можно конечно пораньше об этом рассказать, но решил напоследок.

Что такое перегрузка:

В PHP перегрузка это не много другое, не то что в других языках программирования, поэтому иногда называют просто магические методы.

Перегрузка или магические методы нужны что бы была возможность динамически создавать свойства и методы, к примеру, как отображать свойство при выводе его на экран.

Как работать с перегрузкой в PHP:

Теперь посмотрим как работать с перегрузками, но перед этим надо посмотреть основные магические методы.

Магические методы PHP:

  • __set() — будет выполнен при записи данных в недоступные или несуществующие свойств;
  • __get() — будет выполнен при чтении данных из недоступных или несуществующих свойств;

Это два основных метода которые придётся использовать для перегрузки.

Использование магических методов:

Посмотрим как это работает, для этого создадим класс User.

Давайте разберём код, создаём класс User, в нём создаём конструктор, дальше идёт самое интересное, это магические методы.

Потом создаём магический метод __set(), самое интересно то, какие параметры мы передаём, первый параметр $name равен названию свойства которое мы хотим изменить, а $value, это то на какое значение мы хотим изменить, внутри самого метода сначала обращаемся к свойству которое передалось в параметре $name, и присваиваем значение из $value. Выводим на экран что бы убедится в изменение свойства.

Точно также создаём магический метод __get(), который просто возвращает свойство, в параметрах только $name, он имеет название свойства которое мы хотим получить, возвращаем через return свойство, но вместо названия свойства пишем параметр $name.

Дальше пошёл код с работой объекта класса User.

Вот результат выполнения программы.

Перегрузка в PHP

Как можете заметить, мы сначала присваиваем имя Дима, потом меняем свойство на Вася и выводим опять имя, видим что оно изменилось на Вася.

Но самое главное, что для этого мы не использовали ни одного лишнего метода, работа проводится как с переменными или массивами, что очень хорошо и удобно.

Другие магические методы:

  • __sleep() — Метод вызывается, когда объект подвергается сериализации при помощи функции serialize();
  • __wakeup() — Метод вызывается при восстановлении объекта при помощи функции unserialize();
  • __toString() — Метод позволяет классу решать, как он должен реагировать при преобразовании в строку;
  • __clone() — Метод используется при клонирование объекта;
  • __isset() — Метод будет выполнен при использовании isset() или empty();
  • __unset() — Метод будет выполнен при вызове unset() на недоступном;

Вывод:

Здесь было рассказано что такое перегрузка в PHP или магические методы, теперь вы всё самое важно знаете про ООП в PHP, если вы, конечно, прочитали до этого весь остальной учебник.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Поделится:

Дополнительно: