Zmienne magiczne w PHP

Czym są zmienne magiczne w języku PHP?

Opis problemu

Podczas rozmowy rekrutacyjnej padło pytanie o zmienne magiczne w języku PHP. Czy moglibyście przybliżyć temat, czym one są i w jaki sposób można je stosować?

Rozwiązanie problemu

Są to specjalne funkcje PHP, które zaczynają się od podwójnego podkreślenia <__>. Żadna z nich nie jest samodzielny. I obowiązkowe jest zdefiniowanie ich w klasie.

Poniżej znajduje się kilka faktów na temat funkcji magicznych w PHP.

To programista podaje swoją definicję funkcji magicznych, a nie interpretator PHP. Pozwalając programiście podać definicję, umożliwia się mu osiągnięcie potężnych rzeczy za pomocą tych funkcji magicznych.

PHP nie pozwala na wywoływanie ich bezpośrednio z kodu. Zamiast tego połączenie odbywa się pośrednio.

Zobaczmy przykład.


class Animal {
   public $height;
  public $weight;
  public function __construct ($width, $height)
   {
      $this->height = $height; // ustaw zmienną instancji wysokości
      $this->weight = $ weight; // ustaw zmienną instancji wagi
   }
}

Teraz, jeśli utworzymy instancję klasy Animal za pomocą następującego wiersza kodu:


Animal obj = new Animal(6, 150);

PHP automatycznie wywoła funkcję <__ construct ()> i utworzy obiekt obiekt klasy Animal, o wysokości 6 i wadze 150.

Oto lista niektórych potężnych funkcji magicznych obsługiwanych przez PHP:

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __ unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone()