Class php variable html

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

Читайте также:  Hello, world

Далее создадим из класса 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 OOP — Classes and Objects

A class is a template for objects, and an object is an instance of class.

OOP Case

Let’s assume we have a class named Fruit. A Fruit can have properties like name, color, weight, etc. We can define variables like $name, $color, and $weight to hold the values of these properties.

When the individual objects (apple, banana, etc.) are created, they inherit all the properties and behaviors from the class, but each object will have different values for the properties.

Define a Class

A class is defined by using the class keyword, followed by the name of the class and a pair of curly braces (<>). All its properties and methods go inside the braces:

Syntax

Below we declare a class named Fruit consisting of two properties ($name and $color) and two methods set_name() and get_name() for setting and getting the $name property:

class Fruit // Properties
public $name;
public $color;

// Methods
function set_name($name) $this->name = $name;
>
function get_name() return $this->name;
>
>
?>

Note: In a class, variables are called properties and functions are called methods!

Define Objects

Classes are nothing without objects! We can create multiple objects from a class. Each object has all the properties and methods defined in the class, but they will have different property values.

Objects of a class are created using the new keyword.

In the example below, $apple and $banana are instances of the class Fruit:

Example

class Fruit // Properties
public $name;
public $color;

// Methods
function set_name($name) $this->name = $name;
>
function get_name() return $this->name;
>
>

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name(‘Apple’);
$banana->set_name(‘Banana’);

echo $apple->get_name();
echo «
«;
echo $banana->get_name();
?>

In the example below, we add two more methods to class Fruit, for setting and getting the $color property:

Example

class Fruit // Properties
public $name;
public $color;

// Methods
function set_name($name) $this->name = $name;
>
function get_name() return $this->name;
>
function set_color($color) $this->color = $color;
>
function get_color() return $this->color;
>
>

$apple = new Fruit();
$apple->set_name(‘Apple’);
$apple->set_color(‘Red’);
echo «Name: » . $apple->get_name();
echo «
«;
echo «Color: » . $apple->get_color();
?>

PHP — The $this Keyword

The $this keyword refers to the current object, and is only available inside methods.

Look at the following example:

Example

So, where can we change the value of the $name property? There are two ways:

1. Inside the class (by adding a set_name() method and use $this):

Example

class Fruit public $name;
function set_name($name) $this->name = $name;
>
>
$apple = new Fruit();
$apple->set_name(«Apple»);

2. Outside the class (by directly changing the property value):

Example

class Fruit public $name;
>
$apple = new Fruit();
$apple->name = «Apple»;

PHP — instanceof

You can use the instanceof keyword to check if an object belongs to a specific class:

Источник

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