Классы, свойства и методы
Определяйте класс 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 — локальная установка не требуется.
Все уроки этого курса
- Классы, свойства и методы
- Конструкторы и деструкторы
- Статические свойства и методы
- Обзор магических методов