PHP-BE1: post #970 — TG.ME

Сегодня хочу показать вам, как магические методы в PHP могут упростить жизнь, если использовать их с умом.

Многие знают о __construct() и __destruct(), но PHP предлагает целый арсенал магических методов - от __get() и __set() до __invoke() и __callStatic().

Например, рассмотрим кейс с динамическими свойствами:

class Config {
private array $data = [];

public function __get($name) {
return $this->data[$name] ?? null;
}

public function __set($name, $value) {
$this->data[$name] = $value;
}
}

$config = new Config();
$config->appName = 'MyApp';

echo $config->appName; // MyApp
Мы не определяли свойство appName, но с помощью __get() и __set() сделали объект гибким, почти как массив. Это удобно для конфигов, DTO и API-ответов.

Но!
Если переусердствовать - код становится магическим не только для PHP, но и для вас самого 😄
Отладка, автодополнение и читаемость страдают. Поэтому правило простое:
используйте магию осознанно.

👉 [|@php_be1]
October 21, 2025 117 2