Follow me on Twitter Facebook Flickr Subscribe Feeds
 

Il foreach in php

This entry was posted on November 27th, 2008 and is filed under php.

l foreach nel PHP è uno degli strumenti iterativi come il while, il while do o il for.

L’utilizzo fondamentale che se ne fa è quello di attraversare un array e compiere determinate istruzioni per ogni elemento dell’array stesso. La sintassi di un semplice ciclo foreach è la seguente:


foreach( $array as $var_temporanea ) {

//...istruzioni da eseguire

}

Il codice appena visionato quindi esegue un determinato numero di istruzioni contenute tra le {…} per ogni elemento dell’array. Il seguente codice per esempio stamperà ogni elemento dell’array a schermo:


$array = array('marco','paolo','michele');

foreach( $array as $var_temporanea ) {

echo $var_temporanea . "<br />";

}

Molto utile no? Provate ad eseguire il seguente codice, secondo voi cosa restituirà?


$array = array('marco','paolo','michele');

foreach( $array as $var_temporanea ) {

$var_temporanea = strtoupper($var_temporanea);

}

foreach( $array as $var_temporanea ) {

echo $var_temporanea."<br />";

}

Il codice attraversa una prima volta l’array e rende maiuscole tutte le lettere della variabile $var_temporanea; attraversa poi una seconda volta lo stesso array e ne stampa a schermo il contenuto. Se provate però ad eseguire il codice vedrete che stampa a schermo ancora il contenuto in minuscolo; è come se non venisse eseguito il primo foreach. Questo avviene perchè il PHP ad ogni iterazione copia il contenuto sulla variabile temporanea e lavora quindi su quella, non sui valori effettivi. E’ un pò come nel C che quando passa i parametri ad una funzione lavora sulla copia dei parametri. Fortunatamente però nella versione 5 del PHP è stata introdotta una caratteristica molto importante; il passaggio per referenza. Il seguente codice infatti permette di modificare direttamente il contenuto dei valori dell’array senza bisogno di usare un inutile ciclo for; è sufficiente anteporre il carattere & alla variabile temporanea.


$array = array('marco','paolo','michele');

foreach( $array as &$var_temporanea ) {

$var_temporanea = strtoupper($var_temporanea);

}

foreach( $array as $var_temporanea ) {

echo $var_temporanea."<br />";

}

Un altra funzione non meno importante della precedente è quella di scorrere l’array e recuperarne i valori sotto forma di coppie (chiave, valore). La sintassi è la seguente:


foreach( $array as $chiave => $valore ) {

//...istruzioni da eseguire

}

Un esempio per chiarire meglio il concetto. Il codice seguente stamperà per ogni elemento dell’array la chiave e il valore dell’elemento:


$array = array('cognome' => 'rossi', 'nome' => 'marco');

foreach( $array as $chiave => $valore ) {

echo $chiave . ':' . $valore .'<br />';

}
Pixmac
Like this post? Share It! :)
Navigation:
Related Posts:
Comments

Comments are closed.

1 Trackbacks / Pingbacks

  1. Il foreach in php | PHP-Blog.com