Объектно-ориентированное программирование (ООП) — один из ключевых подходов в современной разработке. PHP поддерживает его уже давно, а в версии 8 эти возможности стали ещё мощнее и удобнее. Разберёмся, что такое классы и объекты, и зачем они нужны.
Что такое класс?
Класс — это шаблон, или «чертёж», по которому создаются объекты. Он описывает, какие данные (свойства) и поведение (методы) будут у каждого объекта этого типа. Представьте класс как форму для выпечки печенья: сама форма — это класс, а каждое испечённое печенье — объект.
Объявление класса и создание объекта
Создадим простой класс User, который описывает пользователя сайта:
class User
{
public string $name;
public string $email;
private int $age;
public function __construct(
string $name,
string $email,
int $age
) {
$this->name = $name;
$this->email = $email;
$this->age = $age;
}
//Методы класса
public function greet(): string
{
return "Привет, меня зовут {$this->name}!";
}
public function getAge(): int
{
return $this->age;
}
}
// Создаём объект (экземпляр класса)
$user = new User('Алексей', 'alex@example.com', 28);
echo $user->greet(); // Привет, меня зовут Алексей!
echo $user->getAge(); // 28
// PHP 8: свойства объявляются прямо в конструкторе
class Product
{
public function __construct(
public readonly string $title,
public float $price,
private int $stock = 0
) {}
public function isAvailable(): bool
{
return $this->stock > 0;
}
public function getPriceWithTax(float $rate = 0.12): float
{
return $this->price * (1 + $rate);
}
}
$product = new Product('Ноутбук', 89990.00, 5);
echo $product->title; // Ноутбук
echo $product->isAvailable(); // true
echo $product->getPriceWithTax(); // 100788.8
Зачем нужны классы?
Без ООП код для работы с несколькими пользователями превращается в нагромождение переменных и функций. Классы решают эту проблему элегантно: каждый объект хранит свои данные и знает, что с ними делать. Это даёт несколько важных преимуществ:
Повторное использование. Написали класс один раз — создавайте сколько угодно объектов на его основе.
Читаемость. Код организован логически: всё, что относится к пользователю, находится в классе User, всё о товаре — в классе Product.
Безопасность данных. Модификаторы доступа (public, private, protected) позволяют скрыть внутренние детали реализации и защитить данные от случайного изменения.
Классы и объекты — это фундамент объектно-ориентированного подхода в PHP. Класс задаёт структуру, объект — конкретный экземпляр этой структуры с реальными данными. PHP 8 делает работу с ними ещё удобнее: благодаря constructor promotion, типизированным свойствам и ключевому слову readonly код становится лаконичнее и понятнее.
0 Комментарий(я)
Зарегистрируйтесь чтобы оставить комментарий