Sobes.tech
Junior — Middle

Ar turite patirties naudodami specialius metodus, kurie prasideda dvigubu pabraukimu PHP?

sobes.tech AI

Atsakymas iš AI

PHP kalboje specialiosios metodos, pradedančios dviem pabraukimais (__), vadinamos magiškomis metodomis. Jos leidžia perrašyti objektų elgseną tam tikrose situacijose. Pavyzdžiui:

  • __construct() — klasės konstruktorius
  • __destruct() — destruktorius
  • __get($name) — iškviečiama, kai bandoma pasiekti neegzistuojančią arba neprieinamą savybę
  • __set($name, $value) — iškviečiama, kai priskiriama neegzistuojančiai arba neprieinamai savybei
  • __call($name, $arguments) — iškviečiama, kai kviečiamas neegzistuojantis metodas
  • __toString() — apibrėžia objekto elgseną, kai jis konvertuojamas į eilutę

Pavyzdys naudojant __get ir __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; // Išves 'Иван'

Magiškosios metodikos leidžia lankščiai valdyti objektų elgseną ir dažnai naudojamos dizaino šablonų įgyvendinimui arba klasių sąsajos supaprastinimui.