0Pricing
PHP Academy · Урок

Классы, свойства и методы

Определяйте класс PHP со свойствами и методами

«Классы, свойства и методы» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.

Введение: классы PHP

Класс — это шаблон для создания объектов. Он определяет свойства (данные) и методы (поведение). Возможности ООП PHP делают код более модульным, повторно используемым и удобным для сопровождения.

Основные понятия

Основные понятия классов PHP:

  • Используйте class ClassName {} для определения класса
  • Свойства хранят данные, а методы определяют поведение
  • Создавайте экземпляры с помощью new ClassName()
  • Получайте доступ к членам с помощью стрелки ->

Определение класса

Пример:

<?php
class Car {
    public string $brand;
    public int    $year;
    public float  $price;

    public function describe(): string {
        return "{$this->year} {$this->brand}";
    }
}

$car = new Car();
$car->brand = 'Toyota';
$car->year  = 2022;
$car->price = 25000.0;

echo $car->describe(); // 2022 Toyota

Модификаторы доступа

Продолжение:

<?php
class BankAccount {
    public  string $owner;
    private float  $balance;
    protected string $currency;

    // public: accessible everywhere
    // private: only within this class
    // protected: this class + subclasses
}

Свойства с типами

Практика:

<?php
class Product {
    public string  $name;
    public float   $price;
    public int     $stock = 0;  // default value
    public bool    $active = true;

    public function inStock(): bool {
        return $this->stock > 0;
    }
}

Методы экземпляра

Подробнее:

<?php
class Counter {
    private int $count = 0;

    public function increment(): void { $this->count++; }
    public function decrement(): void { $this->count--; }
    public function reset(): void    { $this->count = 0; }
    public function value(): int      { return $this->count; }
}

$c = new Counter();
$c->increment();
$c->increment();
echo $c->value();  // 2

Цепочка вызовов методов

Расширенное использование:

<?php
class QueryBuilder {
    private string $table = '';
    private int    $limit = 100;

    public function from(string $t): static { $this->table = $t; return $this; }
    public function limit(int $n): static   { $this->limit = $n; return $this; }
    public function build(): string {
        return "SELECT * FROM {$this->table} LIMIT {$this->limit}";
    }
}

echo (new QueryBuilder())->from('users')->limit(10)->build();

Константы класса

Практический шаблон:

<?php
class HttpStatus {
    const OK        = 200;
    const NOT_FOUND = 404;
    const ERROR     = 500;

    public static function message(int $code): string {
        return match($code) {
            self::OK        => 'OK',
            self::NOT_FOUND => 'Not Found',
            default         => 'Error',
        };
    }
}

echo HttpStatus::message(HttpStatus::NOT_FOUND);  // Not Found

Свойства readonly (PHP 8.1)

Рекомендуемые подходы:

<?php
class Point {
    public function __construct(
        public readonly float $x,
        public readonly float $y,
    ) {}

    public function distanceTo(Point $other): float {
        return sqrt(($this->x - $other->x) ** 2 + ($this->y - $other->y) ** 2);
    }
}

$p1 = new Point(0, 0);
$p2 = new Point(3, 4);
echo $p1->distanceTo($p2);  // 5

Практический шаблон

Объединим всё в практическом шаблоне для классов PHP.

Распространённые ошибки

Избегайте этих распространённых ошибок при работе с классами PHP:

  • Используйте модификаторы доступа для инкапсуляции состояния
  • Предпочитайте сокращённую запись конструктора для компактных классов
  • Определяйте константы с помощью const для фиксированных значений
  • Используйте цепочку вызовов методов (интерфейс с последовательными вызовами) для создания понятных программных интерфейсов

Быстрая проверка

Какой модификатор доступа делает свойство доступным только внутри самого класса?

Итоги: классы PHP

Вы изучили классы PHP. Запомните главное:

  • Используйте модификаторы доступа для инкапсуляции состояния
  • Предпочитайте сокращённую запись конструктора для компактных классов
  • Определяйте константы с помощью const для фиксированных значений
  • Используйте цепочку вызовов методов (интерфейс с последовательными вызовами) для создания понятных программных интерфейсов

Часто задаваемые вопросы

Урок «Классы, свойства и методы» бесплатный?

Да — полный текст урока «Классы, свойства и методы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Классы, свойства и методы»?

Определяйте класс PHP со свойствами и методами Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Классы, свойства и методы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

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

Все уроки этого курса

  1. Классы, свойства и методы
  2. Конструкторы и деструкторы
  3. Статические свойства и методы
  4. Обзор магических методов
← Назад к PHP Academy