Para empezar este post, quiero hablar un poco sobre el tema que se va a tratar en el, se trata del método __construct que podemos usar con PHP. El constructor es un método «especial» de una clase. El objetivo fundamental del constructor e inicializar los atributos del objeto que creamos.
Básicamente el constructor remplaza al método que hasta ahora he utilizado para inicializar los atributos de los objetos hasta ahora. Las ventajas de implementar un constructor en lugar del método «típico» para inicializar podrían ser:
- El constructor (__construct) es el primer método que se ejecuta cuando se crea un objeto.
- El constructor (__construct) se llama automáticamente. Es decir es imposible olvidarse llamarlo ya que se llamará automáticamente.
Otras características del constructor serían:
- El constructor se ejecuta inmediatamente después de crear un objeto y no puede ser llamado otra vez.
- Un constructor no puede devolver un dato.
- Un constructor puede recibir parámetro que se utilizan normalmente para inicializar atributos.
Bueno, una vez aclarados estos pequeños conceptos sobre el método constructor, podríamos realizar un ejercicio «parecido» al anterior que he colgado. Se trata de escribir una clase CabeceraPagina para permitir mostrar un título, indicarle si queremos que aparezca centrado, a izquierda o derecha y permitir definir el color de fondo y de la fuente. Evidentemente habrá que pasar lo valores que cargan los atributos mediante un constructor.
Código de una clase con __construct:
Ver texto plano <html> <head> <title></title> </head> <body> <?php class CabeceraPagina{ //atributos a utilizar private $titulo; private $ubicacion; private $colorFuente; private $colorFondo; //constructor que recibe los parámetros //y los inicializa public function __construct($tit,$ubi,$colorFuen,$colorFon){ $this->titulo=$tit; $this->ubicacion=$ubi; $this->colorFuente=$colorFuen; $this->colorFondo=$colorFon; } //functión que representa en pantalla public function pintar(){ echo '<div style="font-size:40px;text-align:'.$this->ubicacion.';color:'; echo $this->colorFuente.';background-color:'.$this->colorFondo.'">'; echo $this->titulo; echo "</div>"; } } //instanciamos el objeto y le pasamos los parámetros $cabecera=new CabeceraPagina("Entreunosyceros","center","#FF1A00","#CDEB8B"); //llamamos a método para mostrar en pantalla $cabecera->pintar(); ?> </body> </html>