Sobes.tech
Назад к вопросам
Junior — Middle
85

Можешь привести примеры магических методов, используемых в классах?

Ответ от нейросети

sobes.tech AI

В PHP магические методы — это специальные методы, которые начинаются с двойного подчеркивания __ и вызываются автоматически в определённых ситуациях. Вот несколько примеров:

  • __construct() — вызывается при создании объекта (конструктор).
  • __destruct() — вызывается при уничтожении объекта.
  • __get($name) — вызывается при попытке доступа к несуществующему или недоступному свойству.
  • __set($name, $value) — вызывается при присвоении значения несуществующему или недоступному свойству.
  • __call($name, $arguments) — вызывается при вызове несуществующего или недоступного метода.
  • __toString() — вызывается при попытке преобразовать объект в строку.

Пример использования:

class User {
    private $data = [];

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

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

    public function __toString() {
        return "User: " . ($this->data['name'] ?? 'unknown');
    }
}

$user = new User();
$user->name = "Иван";
echo $user; // Выведет: User: Иван