Sobes.tech
Junior — Middle

Имате ли искуства у коришћењу посебних метода које почињу са двоструким подваљком у PHP?

sobes.tech АИ

Одговор од АИ

U PHP-u, specijalne metode koje počinju sa duplim donjim crtom (__) nazivaju se magijske metode. One omogućavaju prepravljanje ponašanja objekata u određenim situacijama. Na primer:

  • __construct() — konstruktor klase
  • __destruct() — destruktor
  • __get($name) — poziva se pri pristupu nepostojećoj ili nedostupnoj svojstvu
  • __set($name, $value) — poziva se pri dodeljivanju nepostojećoj ili nedostupnoj svojstvu
  • __call($name, $arguments) — poziva se pri pozivu nepostojeće metode
  • __toString() — definiše ponašanje objekta pri pretvaranju u niz

Primer korišćenja __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; // Ispisaće 'Иван'

Magijske metode omogućavaju fleksibilno upravljanje ponašanjem objekata i često se koriste za implementaciju obrazaca dizajna ili za pojednostavljenje interfejsa klasa.