Sobes.tech
Junior — Middle

Czy masz doświadczenie w korzystaniu ze specjalnych metod zaczynających się od podwójnego podkreślenia w PHP?

sobes.tech AI

Odpowiedź od AI

W PHP, specjalne metody zaczynające się od podwójnego podkreślenia (__) nazywane są metodami magicznymi. Pozwalają one na nadpisanie zachowania obiektów w określonych sytuacjach. Na przykład:

  • __construct() — konstruktor klasy
  • __destruct() — destruktor
  • __get($name) — wywoływane przy dostępie do nieistniejącej lub niedostępnej właściwości
  • __set($name, $value) — wywoływane przy przypisywaniu do nieistniejącej lub niedostępnej właściwości
  • __call($name, $arguments) — wywoływane przy wywołaniu nieistniejącej metody
  • __toString() — określa zachowanie obiektu przy konwersji do łańcucha znaków

Przykład użycia __get i __set:

class User {
    private $data = [];

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

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

$user = new User();
$user->name = 'Иван';
echo $user->name; // Wyświetli 'Иван'

Metody magiczne pozwalają na elastyczne zarządzanie zachowaniem obiektów i są często wykorzystywane do implementacji wzorców projektowych lub upraszczania interfejsu klas.