PHP Australia Conference 2015

Constructores

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

<?php
class Auto_Cart extends Cart {
    function 
Auto_Cart() {
        
$this->add_item("10"1);
    }
}
?>

Esto define una clase Auto_Cart que es una Cart más un constructor que inicializa el carrito con un elemento del artículo número "10" en cada ocasión que un nuevo Auto_Cart es creado con "new". Los constructores pueden llevar argumentos y estos argumentos pueden ser opcionales, lo que los hace mucho más útiles. Para poder seguir utilizando la clase sin parámetros, todos los parámetros para los constructores deben hacerse opcionales proporcionando los valores por omisión.

<?php
class Constructor_Cart extends Cart {
    function 
Constructor_Cart($item "10"$num 1) {
        
$this->add_item ($item$num);
    }
}
 
// Comprar las mismas cosas aburridas de siempre.
$default_cart = new Constructor_Cart;
 
// Comprar en serio...
$different_cart = new Constructor_Cart("20"17);
?>

También se puede utilizar el operador @ para callar los errores que ocurren en el constructor, para ejemplo @new.

<?php
class A
{
    function 
A()
    {
        echo 
"I am the constructor of A.<br />\n";
    }

    function 
B()
    {
        echo 
"I am a regular function named B in class A.<br />\n";
        echo 
"I am not a constructor in A.<br />\n";
    }
}

class 
extends A
{
}

// Esto invocará a B() como un constructor
$b = new B;
?>

La función B() en la clase A repentinamente se volverá un constructor en la clase B, aunque nunca fue la intención que lo fuera. A PHP 4 no le importa si la función ha sido definida en la clase B, o si ha sido heredada.

Precaución

PHP no llama automáticamente a los constructores de la clase base desde un constructor de una clase derivada. Es su responsabilidad propagar la llamada a los constructores en la jerarquía superior cuando sea apropiado.

Los destructores son funciones que son invocadas automáticamente cuando un objeto es destruido, ya sea con unset() o simplemente al salir del alcance. No existen destructores en PHP. En cambio, se puede utilizar register_shutdown_function() para simular la mayoría de los efectos de los destructores.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top