Sobes.tech
Junior — Middle

Poderia explicar o que se entende por 'funções mágicas' na programação?

sobes.tech IA

Resposta da IA

Em PHP, as "funções mágicas" (métodos mágicos) são métodos especiais cujos nomes começam e terminam com duplo sublinhado (__). São chamados automaticamente pelo interpretador em certas situações, permitindo alterar o comportamento dos objetos.

Exemplos de métodos mágicos:

  • __construct() — construtor da classe.
  • __destruct() — destruidor.
  • __get($name) — chamado ao aceder a uma propriedade que não existe ou não é acessível.
  • __set($name, $value) — chamado ao escrever numa propriedade que não existe ou não é acessível.
  • __call($name, $arguments) — chamado ao invocar um método que não existe.
  • __toString() — permite definir como um objeto é convertido em string.

Exemplo de uso de __get e __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;  // Иван

Desta forma, os métodos mágicos permitem gerir de forma flexível o comportamento dos objetos e simplificam o seu trabalho em certos cenários.