Sobes.tech
Junior — Middle

Máte skúsenosti s používaním špeciálnych metód, ktoré začínajú dvojitým podčiarknutím v PHP?

sobes.tech AI

Odpoveď od AI

V PHP-u sa dvoma podčiarkami (__) na začiatku sa špeciálne metódy nazývané magické metódy. Umožňujú prepísať správanie objektov v určitých situáciách. Napríklad:

  • __construct() — konštruktor triedy
  • __destruct() — destruktor
  • __get($name) — sa volá pri prístupe k neexistujúcej alebo nedostupnej vlastnosti
  • __set($name, $value) — sa volá pri priraďovaní k neexistujúcej alebo nedostupnej vlastnosti
  • __call($name, $arguments) — sa volá pri volaní neexistujúcej metódy
  • __toString() — určuje správanie objektu pri konverzii na reťazec

Príklad použitia __get a __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; // Vypíše 'Иван'

Magické metódy umožňujú flexibilne riadiť správanie objektov a často sa používajú na implementáciu návrhových vzorov alebo na zjednodušenie rozhrania tried.