Métodos Mágicos
Existen distintos tipos de métodos mágicos y todos tienen alguna característica que los diferencia, con el fin de optimizar nuestro código al momento de crear o hacer la instancia de nuestros objetos, estos son algunos de ellos:
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() y __debugInfo()
Debemos recordar que todo método mágico comienza con __ en PHP, es la forma en la que se reconoce el método mágico, por lo que no debemos utilizarlo en algún método o función para evitar confusiones o conflictos.
__construct()
Si el objeto contiene este método, este es invocado normalmente en cada nuevo objeto creado, es decir, si se realiza una instancia del objeto que tenga este método, lo que hará es pasar primero por el constructor para verificar si se requiere algún parámetro o si se va usar alguna variable declarada dentro del objeto para ser ejecutado y redirigido en ese instante.
__destruct()
Este es llamado al finalizar la ejecución para limpiar o forzar la eliminación de la memoria de esa variable u objeto que esté usándolo este método mágico.
__call()
es lanzado al invocar un método inaccesible en un contexto de objeto.
__callStatic()
es lanzado al invocar un método inaccesible en un contexto estático.
__get()
Se utiliza para consultar datos a partir de propiedades inaccesibles (protegidas o privadas) o inexistentes.
__set()
Se ejecuta al escribir datos sobre propiedades inaccesibles (protegidas o privadas) o inexistentes. ya que nos sirve para asignar un valor a una propiedad no visible.
__isset()
Con isset() se verifica la existencia de un elemento en un array o de una propiedad public en un objeto. Con __isset() también es posible saber acerca de las propiedades protected o private
__unset()
Con unset() se eliminan los elementos de un array o propiedades públicas de un objeto. Con __unset() también es posible hacerlo con propiedades protected o private