Constructores y Destructores

Constructor

void __construct ( [mixed args [, ...]] )

PHP 5 permite a los desarrolladores declarar métodos constructores para las clases. Las clases que tienen un método constructor llaman a este método cada vez que se crea un nuevo objeto, para cualquier inicialización que el objeto puede necesitar antes de ser usado.
Nota: Los constructores padres no son llamados implicitamente si la clase hijo define un constructor. Para poder ejecutar el constructor de la clase padre, se debe hacer una llamada a parent::__construct() dentro del constructor de la clase hijo.

Ejemplo 19-6. Usando constructores unificados
<?phpclass BaseClass {
   function 
__construct() {
       print 
"In BaseClass constructor\n";
   }
}

class 
SubClass extends BaseClass {
   function 
__construct() {
       
parent::__construct();
       print 
"In SubClass constructor\n";
   }
}
$obj = new BaseClass();$obj = new SubClass();?>

Para tener compatibilidad con versiones anteriores, si PHP 5 no encuentra una función __construct() para una clase dada, buscará la forma de la función del constructor que se usaba anteriormente por el nombre de la clase. Efectivamente, esto significa que el único caso que puede tener compatibilidad es si la clase tiene un método llamado __construct() el cual fue usado para semánticas diferentes.

Destructores

void __destruct ( void )

PHP 5 introduce un concepto de destructor similar a aquellos de otros lenguajes de programación orientada a objetos, tal como C++. El método destructor será llamado tan pronto como todas las referencias a un objeto en particular sean removidas o cuando el objeto sea explícitamente destruido.

Ejemplo 19-7. Ejemplo de Destructor
<?phpclass MyDestructableClass {
   function 
__construct() {
       print 
"In constructor\n";
       
$this->name "MyDestructableClass";
   }

   function 
__destruct() {
       print 
"Destroying " $this->name "\n";
   }
}
$obj = new MyDestructableClass();?>

Como los constructores, los destructores de la clase padre no serán llamados explícitamente por el compilador. Para ejecutar un destructor padre, se debe tener una llamada explícita a parent::__destruct() en el cuerpo del destructor.
Nota: El destructor es llamado durante la finalización del script, de tal manera que los headers ya han sido enviados.
Nota: Intentar arrojar una excepción desde un destructor produce un error fatal.

No response to “Constructores y Destructores”