Sobes.tech
Junior — Middle

Aveți experiență în utilizarea metodelor speciale care încep cu dublu underscore în PHP?

sobes.tech AI

Răspuns de la AI

În PHP, metodele speciale care încep cu dublu underscore (__) sunt numite metode magice. Ele permit redefinirea comportamentului obiectelor în anumite situații. De exemplu:

  • __construct() — constructorul clasei
  • __destruct() — destructorul
  • __get($name) — este apelat atunci când se accesează o proprietate inexistentă sau inaccesibilă
  • __set($name, $value) — este apelat atunci când se atribuie unei proprietăți inexistentă sau inaccesibilă
  • __call($name, $arguments) — este apelat atunci când se invocă o metodă inexistentă
  • __toString() — definește comportamentul obiectului la conversia în șir de caractere

Exemplu de utilizare a __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; // Va afișa 'Иван'

Metodele magice permit gestionarea flexibilă a comportamentului obiectelor și sunt adesea utilizate pentru implementarea modelelor de proiectare sau pentru simplificarea interfeței claselor.