Antes de explicar a detalle cómo funcionan los constructores y destructores en PHP tenemos que entender un par de cosas –si no tienes mucha experiencia esto te ayudará demasiado-. 🙂

La forma en que se ejecuta PHP es como una cascada, va de arriba hacia abajo, por lo que si ejecutas código PHP se ejecutará en forma de cascada. Sin embargo, el la programación orientada a objetos pasa casi lo mismo, solo que aquí invocamos los métodos que nos interesan.

Los constructores son los métodos que se ejecutarán antes cuando instanciamos una clase, esto lo hace automáticamente PHP, no tienes que preocuparte.

¿Cómo funcionan los constructores en PHP?

Hay dos formas de llamar a un método construct, a continuación te muestro un par de ejemplos:

Forma 1 (tradicional):

De esta manera instanciamos nuestra clase con: $prueba = new Prueba($id); sin tener que llamar un método como setId, php lo hace en automático y tendríamos la variable $this->id para utilizarlo en otro método.

Forma 2:

Esta forma de llamar a un constructor funciona gracias a que nombramos al primer método con el nombre de la clase, esto es el equivalente a escribir __construct, en lo personal no me gusta mucho porque aprendí a programar con el método __construct y se me hace más fácil identificarlo.

Regla de oro:  los constructores siempre deben ser públicos.

Si tienes una duda sobre los constructores o te gustaría colaborar agregando tu opinión al post es bienvenida. 🙂

¿Cómo funcionan los destructores en PHP?

Los destructores funcionan de una manera muy parecida a como funcionan los destructores pero de forma inversa.

Tomando el ejemplo que puse más arriba, ¿qué pasa si la cascada se queda sin agua?, es como cuando se termina de ejecutar nuestro código, se va destruir nuestro objeto en memoria. No soy bueno con las analogías jajaja si no me entendiste, aquí te va un nuevo ejemplo:

Ejemplo de un destructor:

Visualiza el código e intenta entender en la cascada, siempre se ejecutará primero el constructor y hasta el último se ejecutará el destructor.

Este método mágico no se suele utilizar muy seguido a comparación de los constructores pero es importante entender su funcionamiento por si un día lo llegaramos a utilizar en algún proyecto.

Dato curioso: los métodos __construct y __destruct se ejecutarán aunque haya un exit() en alguna parte de nuestros métodos de la clase, ten presente esto cuando los utilices.

¿Entonces… para qué me serviría el destructor?

Imagina que en nuestro constructor iniciamos una conexión a mysql y hacemos una query, necesitamos cerrar esa conexión. Con el método destructor podemos cerrar esa conexión una vez que termine de ejecutarse nuestro código.

Hasta ahora ha sido todo, si gustas agregar algún punto o compartir tu opinión es bienvenida.

Me ayudarias bastante compartiendo este articulo en redes sociales, para seguir trayendo contenido de calidad totalmente gratis al blog.

Un saludo virtual! 😀