Come cancellare un vettore in php
A volte necessario azzerare i dati di un vettore durante l'esecuzione di uno script. Per farlo si possono percorrere due strade: l'istruzione Unset() oppure una nuova operazione di dichiarazione della variabile.
Perché cancellare il contenuto di un vettore
E' sempre consigliabile cancellare il contenuto delle variabile vettore ( array ) negli algoritmi ricorsivi, per evitare il rischio di rielaborare le precedenti assegnazioni di valore nei cicli successivi.
Esempio. Il vettore studenti è utilizzato per calcolare le medie per ogni classe di una scuola. Al primo ciclo, nel vettore sono assegnati i dati di 20 studenti della sezione A. Nel ciclo successivo al vettore sono assegnati i dati di 17 studenti della sezione B. Tuttavia, il vettore contiene ancora i voto degli ultimi tre studenti della sezione A.
Come funziona l'istruzione Unset
Nel linguaggio Php c'è un'apposita istruzione per cancellare il contenuto di una variabile vettore ( array ).
unset($var);
Questa istruzione permette di svuotare il contenuto di un vettore con un'operazione di cancellazione e di azzeramento dell'array.
La re-dichiarazione dell'array
In alternativa è anche possibile dichiarare nuovamente la variabile in questione come array.
L'operazione di cancellazione cancella tutti i valori precedentemente memorizzati nella variabile vettore.
$var=array();
Un esempio pratico
Prendiamo come esempio una variabile vettore $city composta dagli elementi "Roma", "Milano", "Napoli".
$city[1]="Roma";
$city[2]="Milano";
$city[3]="Napoli";
Un programma ricorsivo potrebbe riutilizzare lo stesso array $city più volte durante l'esecuzione. Ad esempio, nel caso nel corso dell'esecuzione il vettore $city potrebbe essere utilizzato per memorizzare delle città straniere o altro. Ad esempio, se assegnassimo alla variabile $city i due nuovi valori:
$city[1]="Washington";
$city[2]="New York";
Il valore $city[3] resterebbe assegnato a "Napoli". Per eliminare dalla memoria le tracce del precedente utilizzo della variabile è necessario "svuotare" l'array. Per farlo è sufficiente effettuare una nuova operazione di dichiarazione della variabile $city prima della precedente fase di assegnazione. In altri termini, dovremmo scrivere nel seguente modo:
$city=array();
$city[1]="Washington";
$city[2]="New York";
La nuova operazione di dichiarazione $city=array() cancella tutti i valori precedentemente assegnati al vettore array $city.
Cosa cambia rispetto al caso precedente?
In questo caso, dopo l'assegnazione dei due nuovi valori "Washington" e "New York", possiamo essere sicuri che il resto dell'array è vuoto.
In parole semplici, non c'è più il valore "Napoli" registrato sotto l'elemento $city[3].