Constructores

Los constructores son funciones en una clase que son llamadas automáticamente cuando se crea una nueva instancia de una clase con new. Una función se convierte en constructor cuando tiene el mismo nombre que la clase. Si una clase no tiene constructor, el constructor de la clase base es llamado, si existe.



<?phpclass Auto_Carrito extends Carrito {
    function 
Auto_Carrito() {
        
$this->agregar_item("10"1);
    }
}
?>


Esto define una clase Auto_Carrito que es un Carrito más un constructor que inicializa el carrito con un item del número de artículo "10" cada vez que un nuevo Auto_Carrito se crea con "new". Los constructores pueden recibir argumentos y tales argumentos pueden ser opcionales, lo que los hace mucho más útiles. Para poder usar aun la clase sin parámetros, todos los parámetros deben ser opcionales, al proveer valores predeterminados.



<?phpclass Constructor_Carrito extends Carrito {
    function 
Constructor_Carrito($item "10"$num 1) {
        
$this->agregar_item ($item$num);
    }
}
// Comprar lo mismo de antes.$carrito_predeterminado = new Constructor_Carrito;
// Comprar esta vez en serio...$carrito_diferente = new Constructor_Carrito("20"17);?>


También puede usar el operador @ para callar los errores que ocurren en el constructor, p.ej. @new.



<?phpclass A{
    function 
A()
    {
        echo 
"Soy el constructor de A.<br />\n";
    }

    function 
B()
    {
        echo 
"Soy una funci&oacute;n regular llamada B en la clase A.<br />\n";
        echo 
"No soy un constructor en A.<br />\n";
    }
}

class 
extends A{
}
// Esto llama a B() como un constructor$b = new B;?>


La función B() en la clase A se convertirá de repente en un constructor en la clase B, aun cuando nunca fue esa la intención. A PHP 4 no le importa si la función está siendo definida en la clase B, o si ha sido heredada.


Atención
PHP 4 no llama constructores de la clase base automáticamente desde un constructor de una clase derivada. Es su responsabilidad propagar la llamada a constructores más arriba en la jerarquía cuando sea apropiado.

Los destructores son funciones que son llamadas automáticamente cuando un objeto es destruido, ya sea con unset() o simplemente al finalizarse su contexto. No hay destructores en PHP. Es posible usarregister_shutdown_function() en su lugar para simular la mayoría de efectos de los destructores.

No response to “Constructores”