Классы и объекты в PHP - основа ООП

Классы и объекты в PHP как основа ООП

Сегодня мы поговорим о том, что вообще такое объектно-ориентированное программирование и о том, как оно реализовано в PHP. Здесь же поговорим о классах и объектах, об их различии и предназначении.

Объектно-ориентированное программирование

До этого момента мы с вами писали простейшие скрипты, которые просто подключали другие скрипты и выполнялись последовательно. С таким подходом без каких-либо проблем можно делать что-то простое.

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

Что вообще за объекты такие?

Давайте на минутку забудем о программировании и подумаем: что такое объекты. Да это всё, что нас окружает. Взгляните на комнату вокруг. Вот же: стул, стол, цветок, ручка, листок бумаги - всё это является объектами. Вы, в том числе, тоже объект. Вы можете взять ручку и начать что-то писать на листе бумаги. Это - взаимодействие между объектами. А ещё, если присмотреться, то можно понять, что все объекты созданы по какому-то определенному шаблону. Ну то есть вы смотрите на разные ручки: одна - желтая, другая - синяя. Но вы смотрите на них и можете безошибочно их классифицировать как ручки. И вы понимаете, что для того, чтобы сделать ручку, нужен какой-то чертёж, по которому её будут собирать. И то же самое со столом, стулом, и даже Вами - ваша ДНК содержит "шаблон", по которому вы в итоге собрались.

Ровно то же самое происходит и в объектно-ориентированном программировании. Виртуальные объекты создаются на основе специальных шаблонов, называемых классами. Класс - это своего рода "чертёж", на основе которого будут созданы объекты. Объект же, как из этого следует - это экземпляр какого-то класса. То есть сущность, созданная по этому шаблону.

Классы в PHP

Итак, представим, что мы хотим создать некоторую упрощенную модель котика в PHP. Для этого нам сперва надо сделать его "чертёж", а именно - создать класс. Мы смотрим на котиков и понимаем что это котики. Это происходит по тому, что все котики имеют какие-то общие признаки. По этим признакам мы можем отличать одни классы объектов от других.

Классы в PHP создаются с помощью слова class, за которым следуем имя класса. Имя класса должно быть написано в CamelCase и начинаться с большой буквы. Затем с новой строки открывается фигурная скобка, далее идёт тело класса, и, наконец, закрывающая фигурная скобка.

Итак, самый простейший пример класса котика выглядит следующим образом:

Код доступен только после покупки курса ООП в PHP.

Сам по себе этот код сейчас ничего не выведет. Это - просто шаблон. Точно так же, как если бы мы просто описали функцию.

Объекты в PHP

Итак, мы сделали некоторый шаблон, который описывает котиков. Пора бы уже и котика по нему собрать. А именно - создать объект.

Объекты создаются с помощью ключевого слова new:

Код доступен только после покупки курса ООП в PHP.

Так мы создали объект с типом Cat и вывели его с помощью var_dump().

Код доступен только после покупки курса ООП в PHP.

Как видим, в переменной лежит объект (object). И больше пока ничего.

Мы можем создать ещё несколько котиков, и все они будут объектами этого класса:

Код доступен только после покупки курса ООП в PHP.

Результат этого кода:

Код доступен только после покупки курса ООП в PHP.

Видим, что это действительно объекты класса Cat, однако их идентификаторы разные: 1, 2 и 3 (в PHP каждый отдельный объект имеет собственный идентификатор).

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