Объекты и классы в PHP 8

Объектно-ориентированное программирование (ООП) — один из ключевых подходов в современной разработке. 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 код становится лаконичнее и понятнее.

 

Лого

Spartacus_85 [Admin]

Администратор сайта — это специалист, который отвечает за техническую поддержку и бесперебойную работу веб-ресурса.



0 Комментарий(я)

Зарегистрируйтесь чтобы оставить комментарий