void
__construct ( [mixed args [, ...]] )
PHP 5 permite a los desarrolladores declarar métodos constructores
para las clases. Las clases que tiene un método constructor llaman
a este método cada vez que se crea un nuevo objeto, para cualquier
inicializació 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
<?php class 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.
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
<?php class 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 desctructor es llamado durante la finalización del script, de
tal manera que los headers ya han sido enviados.