MANUAL
DE PHP. Parte 2. OBJETOS/FUNCIONES CONSTRUCTORAS
¿Qué prefieren
ustedes? Construir o destruir. En la vida cotidiana, es siempre más
hermoso construir (las destrucciones se las dejamos nosotros a los
que tienen esa vocación, menciones militares o políticas
aparte) En la vida informática como quiera que sea, las construcciones
se hacen necesarias, al igual que, en ocasiones, las destrucciones.
En este nuevo encuentro, vamos a hablar sobre las
funciones constructoras para las clases. Una función constructora
es una función que se hace o se define de una manera muy similar
a como se hace con un método.
Las funciones constructoras se llaman cada vez que
una nueva instancia de una clase (un objeto) es hecha.
Las reglas son sencillas, en primer lugar, la
función constructora debe llevar el mismo nombre que la clase.
Lo que podemos incluir es cualquier conjunto de atributos y definiciones
que queremos que sean agregadas a la clase, la primera vez que la
clase sea instanciada (o copiada) a un nuevo objeto del tipo de la
clase definida.
No es necesario, como lo es con los métodos,
hacer una llamada explícita a la función constructora,
ya que esa es hecha cuando se crea un objeto de la clase que contiene
la función constructora.
¿Seguimos con nuestro ejemplo? De acuerdo
(no es exquisita la forma en que la coacción funciona)
Nuestro código hasta este momento es el siguiente:
<?php
class canimal{
var $ojos = 2;
function patas(){
return "Este
animal tiene ".$this->patas." patas y además
tiene ".$this->ojos." ojos <BR>";
}
}
$gato = new canimal();
$perro = new canimal();
$gato->patas = 3;
$perro->patas
= 4;
echo $gato->patas();
echo $perro->patas();
?>
Un defecto de nuestro código es la necesidad
que tenemos agregar líneas de código innecesarias a
nuestra aplicación, pudiendo fácilmente pasar como argumentos
esos valores a la hora de declarar las variables $gato y $perro como
del tipo canimal().
¿Qué hacemos entonces?, sencillo, definimos
una función constructora. ¿En dónde? Inmediatamente
después del nombre de la clase y de la llave que abre la clase
de la siguiente manera:
class canimal{
var $ojos = 2;
function canimal($patas){
$this->patas
= $patas;
}
function patas(){
return "Este
animal tiene ".$this->patas." patas y además tiene
".$this->ojos." ojos <BR>";
}
Ahora veamos con detenimiento nuestro resultado en
el siguiente vídeo:
No sabemos ustedes, pero nosotros en realidad nos
sentimos emocionados del avance. En nuestra próxima lección
HERENCIA. Hasta Pronto.