Costruttori e distruttori degli oggetti

29/11/2005

Nell'articolo precedente abbiamo introdotto i concetti di costruttore e distruttore. Per mezzo di un costruttore (sintassi: __construct()), inizializzeremo una struttura di dati, esso entrerà in gioco alla creazione di un oggetto; invece, il distruttore (sintassi: __destruct()), presiede alla distruzione di una struttura di dati e viene richiamato per la distruzione di un oggetto.

E' utile proporre alcuni esempi pratici di listato in cui vengono introdotti costruttore e distruttore:

<?php
/*il costruttore*/

//definizione di una superclasse
class Mammiferi
{
//sintassi del costruttore
function __construct()
{
echo "Costruttore nella classe base.<br />n";
}
}

//Ereditarietà: definizione di una sottoclasse
class Felini extends Mammiferi
{
function __construct()
{
echo "Costruttore nella classe derivata.<br />n";
}
}

//istanza
$obj = new Mammiferi();
$obj = new Felini();
?>
Quindi, il costruttore è stato introdotto subito dopo la dichiarazione della classe e viene richiamato al momento dell'istanzia di un oggetto. Nel codice è inoltre possibile notare la sintassi utile a produrre il meccanismo dell'ereditarietà.

Passiamo ora al distruttore:
<?php
/*il distruttore*/

//definizione della classe
class Killer
{
//costruttore
function __construct()
{
$this->obj = "oggetto";
echo "Costruisci l'" . $this->obj . ".<br>n";
}

//distruttore
function __destruct()
{
echo "Distruggi l'" . $this->obj . ".<br>n";
}
}

//istanza
$obj = new Killer();
?>
Nel listato di costruzione e distruzione, per la classe denominata "Killer" abbiamo dichiarato e istanziato un oggetto associabile alla variabile $obj; è stato quindi richiamato il costruttore della classe per la stampa a video della stringa desiderata.
Una volta eseguita l'operazione per cui il codice è stato creato, possiamo rilasciare le risorse impiegate dall'oggetto, dovrà essere quindi richiamato il distruttore.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home