Constructores en PHP

  • Por
Vemos lo que es un constructor y cómo definirlos en programación orientada a objetos en PHP.
Los constructores son funciones, o métodos, que se encargan de realizar las tareas de inicialización de los objetos al ser instanciados. Es decir, cuando se crean los objetos a partir de las clases, se llama a un constructor que se encarga de inicializar los atributos del objeto y realizar cualquier otra tarea de inicialización que sea necesaria.

No es obligatorio disponer de un constructor, pero resultan muy útiles y su uso es muy habitual. En el ejemplo de la caja, que comentábamos en el anterior artículo de programación orientada a objetos en PHP, lo normal sería inicializar las variables como color o las relacionadas con las dimensiones y, además, indicar que el contenido de la caja está vacío. Si no hay un constructor no se inicializan ninguno de los atributos de los objetos.

El constructor se define dentro de la propia clase, como si fuera otro método. El único detalle es que el constructor debe tener el mismo nombre que la clase. Atentos a PHP, que diferencia entre mayúsculas y minúsculas.

Para la clase Caja definida anteriormente, se podría declarar este constructor:

function Caja($alto=1,$ancho=1,$largo=1,$color="negro"){
    $this->alto=$alto;
    $this->ancho=$ancho;
    $this->largo=$largo;
    $this->color=$color;
    $this->contenido="";
}

En este constructor recibimos por parámetro todos los atributos que hay que definir en una caja.

Es muy útil definir unos valores por defecto en los parámetros que recibe el constructor, igualando el parámetro a un valor dentro de la declaración de parámetros de la función constructora, pues así, aunque se llame al constructor sin proporcionar parámetros, se inicializará con los valores por defecto que se hayan definido.

Es importante señalar que en los constructores no se tienen por qué recibir todos los valores para inicializar el objeto. Hay algunos valores que pueden inicializarse a vacío o a cualquier otro valor fijo, como en este caso el contenido de la caja, que inicialmente hemos supuesto que estará vacía.

Autor

Miguel Angel Álvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

victor manuel

16/8/2009
muy bueno
muy bueno y claro el artñiculo, muchas gracias por el trabajo de compartir estos conocimientos.

Jair

31/10/2009
Sobrecarga de constructor
Y que pasa si se necesita hacer sobre carga de constructores. Como podria realizarse esto, por lo que veo el constructor se declara como una funcion y php no permite la sobrecarga de constructores agredeceria mucho si alguien me contestara.

illions

28/4/2011
Construcctores
Hola,

También podemos usar a cambio del nombre de la clase la palabra reservada __construct

Arturo Cuauhtémoc

08/1/2012
Constrctores en PHP
Exposición muy clara. Gracias por compartir conocimientos.