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.