Класс - это шаблон для объектов. Класс объединяет данные и функции, которые работают с данными, в одной структуре. Это блок кода, который описывает:
Класс может содержать собственные константы, переменные (называемые свойствами) и функции (называемые методами).
Когда создаётся объектно-ориентированное приложение, обычно создаете один или несколько классов, представляющих различные типы объектов в приложении. Например, если вы пишете приложение для форума, вы можете создавать классы под названием «Форум», «Тема», «Почта» и «Участник».
Объект - это особый тип переменной, созданный из класса. Он содержит фактические данные, и можно вызвать функции объекта для обработки этих данных. Можно создать столько объектов, сколько необходимо, из одного класса. Каждый объект функционирует независимо от других, даже если все они происходят из одного класса.
Можно сравнить класс с чертежом автомобиля. Он определяет, как машины, созданные из чертежа, будут выглядеть и вести себя, но это - абстрактная концепция.
Объект же подобен реальному автомобилю, созданному из чертежа. Он имеет реальные свойства (например: красный цвет), и реальные методы использования (например: «ускорить» и «тормозить»).
Объект реальная реализация класса (class instance).
Данные, которые содержатся в объекте, хранятся в специальных переменных, известных как свойства. Свойства объекта тесно привязаны к объекту. Хотя все объекты, созданные из данного класса, имеют одинаковые свойства, свойства одного объекта могут иметь значения, отличные от значений свойств другого объекта.
Функции, которые описаны в классе и используются в объекте, называются методами. Во многом они похожи на обычные функции - можно передавать им значения, они могут содержать локальные переменные, они могут возвращать значения.
Однако методы объекта обычно работают в основном со свойствами объекта. Например, метод login () для регистрации участника на форумах может установить для свойства loggedIn элемента значение true.
Описание класса начинается с ключевого слова class, затем следует имя класса, и блок операторов, заключённый в фигурные скобки. Он включает в себе определение свойств и методов этого класса.
Пример:
Псевдопеременная $this используется для ссылки на сам класс.
Запись $this->price - это обращение к переменной $price, описанной в этом классе.
Пример создания трёх разных объектов из этого класса.
Задание свойства price объекта $maths
Такой же эффект будет от вызова метода setPrice объекта $maths
Вызов метода setTitle объекта $physics
PHP позволяет использовать специальные типы методов: конструктор класса и деструктор класса.
Конструктор класса (метод __construct()) выполняется при инициализации объекта. Этот метод может выделить объекту некоторые ресурсы.
Деструктор класса (метод __destruct() ) используется для освобождения выделенных ресурсов.
Например:
Для свойств и методов класса PHP позволяет определять область видимости (public, protected или private).
Например:
или
Это область видимости, которая не имеет ограничений. То есть: свойства или методы public видны и могут использоваться в любом месте программного кода. Как внутри так и вне класса.
Этот уровень видимости присваивается по-умочанию, если не указан никакой другой.
Эти свойства и методы доступны только внутри класса или дочерних классов.
Эти свойства и методы доступны исключительно в этом классе.
Наследование классов - это возможность создавать новые (дочерние) классы на основании существующих. Дочерний класс при этом получает все свойства и методы родителя.
Дочерний класс может также описать новые свойства и методы в дополнение к полученнм от родителя.
Пример: