Os métodos mágicos são executado quando determinado evento – comportamento – ocorre na classe mãe quando instanciada e transforma em objeto. A execução desses métodos em sua maioria deve ser implementada por você para ter um maior controle do programa, mas alguns deles são default como __construct. Então, todos os nomes dos métodos inicializa com __nomeMethod(). Define que um método é mágico, por isso evite utilizar nomes de métodos com esta estruturação, se não for mágico.
Listamos os métodos mágicos mais utilizados e seus respectivos links da documentação oficial:
- __construct() e destruct():É chamado respectivamente na construção e destruição do objeto.http://php.net/manual/pt_BR/language.oop5.decon.php#object.construct
- __toString(): É executado quando tentar chamar um objeto como uma string.http://php.net/manual/pt_BR/language.oop5.magic.php#object.tostring
- __invoke(): É executado quando chamamos um objeto como um se fosse um métodos após instanciado. Então implementado o método ele vai executar o código definido nele. Sem apresentar erros, caso a assinatura do método seja idêntica ao chamada solicitada.http://php.net/manual/pt_BR/language.oop5.magic.php#object.invoke
- __clone(): http://php.net/manual/pt_BR/language.oop5.cloning.php#object.clone
- __get(); __set(); __isset(); __unset(); http://php.net/manual/pt_BR/language.oop5.overloading.php#object.set
- __sleep(); http://php.net/manual/pt_BR/language.oop5.magic.php#object.sleep
- __debugInfo(); http://php.net/manual/pt_BR/language.oop5.magic.php#object.debuginfo
- __wakeup(); http://php.net/manual/pt_BR/language.oop5.magic.php#object.wakeup
- __call(); __callStatic(); http://php.net/manual/pt_BR/language.oop5.overloading.php#object.call
Espero ter ajudado mais a breve descrição dos métodos foi informada apenas para métodos mais utilizado em programação orientada a objetos no PHP7. Bom estudos e se aprofunde usando os links indicados.