Класс экземпляр класса php

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

Класс — это шаблон для объектов, а объект — это экземпляр класса.

Представьте, что у нас есть класс Car . Car может иметь такие свойства, как название, цвет, диски и т.д. Мы можем определить переменные класса например, $name , $color и $disk для хранения значений этих свойств.

Если мы создадим отдельные объекты (BMW, Mercedes Benz и т.д.), то они будут наследовать все свойства и поведение класса Car , но каждый объект будет иметь разные значения свойств.

Что такое класс PHP?

Класс определяется с помощью ключевого слова class , за которым следует имя класса и пара фигурных скобок (<>). Все его свойства и методы заключены в фигурные скобки:

Синтаксис

Ключевое слово class используется для определения класса в PHP. Ниже приведены правила создания класса в PHP:

  • Пишем название класса с большой буквы.
  • Если имя класса содержит более одного слова, мы пишем каждое слово с большой буквы. Это известный стиль верблюда. Например, JapaneseCars, AmericanIdol, EuropeTour и др.
  • Имя класса не может быть зарезервированным словом PHP.
  • Имя класса не может содержать пробелов.

Как добавить свойства к классу?

Мы вызываем свойства внутри класса. Свойства могут принимать такие значения, как строки, целые числа и логические значения (true/false), как и любые другие переменные. Добавим несколько свойств в класс Car:

class Car < public $name; public $color = 'green'; public $hasSunRoof = true; >

Приведем правила создания свойств к классу:

  • Мы используем ключевое слово public перед свойством класса.
  • Согласно соглашению об именах, имя свойства начинается со строчной буквы.
  • Если имя содержит более одного слова, все слова, кроме первого слова, начинаются с заглавной буквы. Например, $color или $hasSunRoof (Верблюжий регистр camelCase).
  • Свойство может иметь значение по умолчанию. Например, $color = ‘green’.
  • Мы также можем создать свойство без значения по умолчанию. Например, $name.
Читайте также:  Кнопка

Объявим класс с именем Car , который будет состоять из двух свойств ( $name и $color ) и двух методов set_name() и get_name() для установки и получения свойства $name :

Пример

name = $name; > function get_name() < return $this->name; > > ?>

Данный код ничего не выведет, поскольку мы создали класс, но не создали пока ни одного объекта.

Примечание: В классе переменные называются свойствами, а функции — методами!

Что такое объект PHP?

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

Для объявления объекта необходимо использовать ключевое слово new .

Далее создадим из класса Car два объекта — $bmw и $mercedes .

$bmw = new Car(); $mercedes = new Car();

Процесс создания объекта также известен как создание экземпляра.

Объекты, для чего они нужны?

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

Мы можем создать столько объектов, сколько захотим, из одного и того же класса, и все они будут совместно использовать методы и свойства класса. См. изображение ниже:

Объекты и классы в объектно-ориентированном PHP на примере автомобиля

Из одного и того же класса Car мы создали три отдельных объекта с названиями: Mercedes , Bmw и Audi .

Хотя все объекты были созданы из одного и того же класса и, следовательно, имеют методы и свойства класса, они все же разные. Это не только потому, что они имеют разные названия, но и потому, что их свойствам могут быть присвоены разные значения. Например, на изображении выше они различаются свойством цвета: Mercedes зеленый, Bmw синий, а Audi оранжевый.

Примечание: Класс содержит методы и свойства, общие для всех созданных из него объектов.

Хотя объекты используют один и тот же код, они могут вести себя по-разному, поскольку им могут быть присвоены разные значения.

Как получить свойства объекта?

Создав объект, мы можем получить его свойства. Например:

echo $bmw -> color; echo $mercedes -> color;

Когда объект создан, мы можем получить доступ к свойствам класса с помощью оператора (->) .

Обратите внимание, что имя свойства не начинается со знака $ ; только имя объекта начинается с символа $ .

Пример

 // создадим из класса Car два объекта $bmw = new Car(); $mercedes = new Car(); echo $bmw -> color; echo "
"; echo $mercedes -> color; ?>

Результат выполнения кода:

Свойство color было установлено в классе по умолчанию (green), поэтому все объекты его унаследовали.

Как установить свойства объекту?

Чтобы установить свойство объектe, мы используем аналогичный подход.

Например, установим синий цвет объекту bmw :

Таким же способом установим значение свойства $name для обоих объектов:

$bmw ->name = "BMW"; $mercedes ->name = "Mercedes Benz";

Установив значение свойства, мы можем получить его значение. Чтобы получить цвет объекта $bmw , мы используем следующую строку кода:

Пример

 $bmw = new Car(); $bmw ->name = "BMW"; $bmw -> color = 'blue'; $mercedes = new Car(); $mercedes ->name = "Mercedes Benz"; echo $bmw -> name . ": "; echo $bmw -> color; echo "
"; echo $mercedes -> name . ": "; echo $mercedes -> color; ?>

Результат выполнения кода:

Как добавить методы в класс?

Классы могут содержать различные функции. Функция внутри класса называется методом. Здесь мы добавляем в класс метод hello() с префиксом public :

class Car < public $comp; public $color = 'green'; public $hasSunRoof = true; public function hello() return "beep"; > >
  • Прописываем ключевое слово public перед методом.
  • Согласно соглашению об именах, имя метода начинается со строчной буквы.
  • Если имя содержит более одного слова, то все слова, кроме первого слова, начинаются с заглавной буквы. Например, helloUser() или flyPanAm().

Мы можем подходить к методам так же, как и к свойствам:

Пример

 > // Создать экземпляр $bmw = new Car (); $mercedes = new Car (); // Получить значения echo $bmw -> color; // green echo "
"; echo $mercedes -> color; // green echo "
"; // Установите значения $bmw -> color = 'blue'; $bmw -> name = "BMW"; $mercedes -> name = "Mercedes Benz"; // Получить значения echo $bmw -> color; // blue echo "
"; echo $mercedes -> color; // green echo "
"; echo $bmw -> name; // BMW echo "
"; echo $mercedes -> name; // Mercedes Benz echo "
"; // Используем метод, чтобы получить звуковой сигнал echo $bmw -> hello(); // beep echo "
"; echo $mercedes -> hello(); // beep ?>

В приведенном ниже примере создадим два метода set_name() и get_name() для установки и получения свойства $name для объектов $bmw и $mercedes :

Пример

name = $name; > function get_name() < return $this->name; > > $bmw = new Car(); $mercedes = new Car(); $bmw->set_name("BMW"); $mercedes->set_name("Mercedes Benz"); echo $bmw->get_name(); echo "
"; echo $mercedes->get_name(); ?>

Результат выполнения кода:

Для установки и получения свойства $color , созданных объектов, добавляем в класс Car еще два метода:

Пример

name = $name; > function get_name() < return $this->name; > function set_color($color) < $this->color = $color; > function get_color() < return $this->color; > > $bmw = new Car(); $bmw->set_name("BMW"); $bmw->set_color('blue'); echo "Название: " . $bmw->get_name(); echo "
"; echo "Цвет: " . $bmw->get_color(); ?>

Результат выполнения кода:

Ключевое слово $this в PHP

Ключевое слово $this указывает на то, что мы используем собственные методы и свойства класса, и позволяет нам получить доступ к ним в пределах области видимости класса.

Ключевое слово $this позволяет нам получить доступ к свойствам и методам класса внутри класса, используя следующий синтаксис:

$this -> propertyName; $this -> methodName();

Примечание: Только ключевое слово $this начинается со знака $ , а имена свойств и методов нет.

Ключевое слово $this относится к текущему объекту и доступно только внутри методов.

В следующем примере создан класс Car и объект $bmw.

Пример

Перед нами стоит задача изменить свойство $name объекта.

Сделать это можно двумя способами:

1. Изменение свойства внутри класса путём добавления метода set_name() и используя ключевое слово $this :

Пример

name = $name; > > $bmw = new Car(); $bmw->set_name("BMW"); echo $bmw -> name; // BMW ?>

Результат выполнения кода:

2-й способ — это изменение свойства вне класса путем прямого изменения значения $name:

Пример

 $bmw = new Car(); $bmw->name = "BMW"; echo $bmw -> name; // BMW ?>

Результат выполнения кода:

Является ли объект экземпляром класса?

Оператор instanceof используется для определения того, является ли текущий объект экземпляром указанного класса:

Пример

Результат выполнения кода:

Оператор instanceof не генерирует никаких ошибок, если проверяемая переменная не является объектом. В этом случае он просто возвращает FALSE .

Итоги

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

Источник

Объектно-ориентированный PHP с классами и объектами

Sajal Soni

Sajal Soni Last updated Dec 4, 2018

В этой статье мы исследуем основы объектно-ориентированного программирования на PHP. Начнем с введения в классы и объекты, а во второй половине статьи обсудим несколько продвинутых понятий, таких как наследование и полиморфизм.

Что такое объектно-ориентированное программирование (ООП)?

Объектно-ориентированное программирование, обычно называемое ООП — это подход, который вам помогает разрабатывать сложные приложения таким образом, чтобы они легко поддерживались и масштабировались в течение длительного времени. В мире ООП реальные понятия Person , Car или Animal рассматриваются как объекты. В объектно-ориентированном программировании вы взаимодействуете с вашим приложением, используя объекты. Это отличается от процедурного программирования, когда вы, в первую очередь, взаимодействуете с функциями и глобальными переменными.

В ООП существует понятие «class», использываемое для моделирования или сопоставления реального понятия с шаблоном данных (свойств) и функциональных возможностей (методов). «Оbject» — это экземпляр класса, и вы можете создать несколько экземпляров одного и того же класса. Например, существует один класс Person , но многие объекты person могут быть экземплярами этого класса — dan , zainab , hector и т. д.

Например, для класса Person могут быть name , age и phoneNumber . Тогда у каждого объекта person для этих свойств будут свои значения.

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

Что такое класс PHP?

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

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

Источник

Оцените статью