Значение свойства объекта php

Работа со свойствами объектов на PHP

Сейчас мы с вами научимся работать с объектами и их свойствами на более практическом примере. Давайте сделаем класс User , который будет описывать юзера нашего сайта. Пусть у нашего пользователя будет два свойства: имя и возраст. Напишем код нашего класса:

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

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

Давайте теперь что-нибудь запишем в свойства нашего объекта, а потом выведем эти данные на экран:

$user = new User; // создаем объект нашего класса $user->name = ‘john’; // записываем имя в свойство name $user->age = 25; // записываем возраст в свойство age echo $user->name; // выводим записанное имя echo $user->age; // выводим записанный возраст ?>

Как вы уже поняли — в свойства объекта можно что-то записывать и из свойств можно выводить их содержимое. Давайте теперь сделаем 2 объекта-юзера: ‘john’ и ‘eric’ , заполним их данными и выведем на экран сумму их возрастов:

Читайте также:  Код винлокера на питоне

// Первый объект $user1 = new User; // создаем первый объект $user1->name = ‘john’; // записываем имя $user1->age = 25; // записываем возраст // Второй объект $user2 = new User; // создаем второй объект $user2->name = ‘eric’; // записываем имя $user2->age = 30; // записываем возраст // Найдем сумму возрастов: echo $user1->age + $user2->age; // выведет 55 ?>

Сделайте класс Employee (работник), в котором будут следующие свойства — name (имя), age (возраст), salary (зарплата).

Создайте объект класса Employee , затем установите его свойства в следующие значения — имя ‘john’ , возраст 25 , зарплата 1000 .

Создайте второй объект класса Employee , установите его свойства в следующие значения — имя ‘eric’ , возраст 26 , зарплата 2000 .

Выведите на экран сумму зарплат созданных юзеров.

Выведите на экран сумму возрастов созданных юзеров.

Источник

Классы и объекты в 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.

Источник

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