Sobes.tech
Junior — Middle

Máte zkušenosti s používáním speciálních metod začínajících dvojitým podtržítkem v PHP?

sobes.tech AI

Odpověď od AI

V PHP jsou speciální metody začínající dvojitým podtržítkem (__), nazývané magické metody. Umožňují předefinovat chování objektů v určitých situacích. Například:

  • __construct() — konstruktor třídy
  • __destruct() — destruktor
  • __get($name) — je voláno při přístupu k neexistující nebo nedostupné vlastnosti
  • __set($name, $value) — je voláno při přiřazení k neexistující nebo nedostupné vlastnosti
  • __call($name, $arguments) — je voláno při volání neexistující metody
  • __toString() — určuje chování objektu při převodu na řetězec

Příklad použití __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é metody umožňují flexibilně řídit chování objektů a často se používají k implementaci návrhových vzorů nebo ke zjednodušení rozhraní tříd.