Ciclo For
Un'altra istruzione utile per il controllo del flusso del programma è il costrutto for. Quest'ultimo ci permette di richiedere più volte l'esecuzione di una o più istruzioni fin quando una particolare condizione, detta condizione di controllo del ciclo, risulta vera. La sintassi PHP del costrutto è la seguente:
for ($v=startValue; condizione_su_v; istruzione_su_v)
{
bloccoDiIstrizioni;
}
dove $v è la variabile di controllo del ciclo. $v
viene inizializzata sul valore startValue prima
dell'inizio del ciclo. Condizione_su_v è la
condizione di controllo del ciclo. Il ciclo termina quando
condizione_su_v restituisce il valore false (cioè
quando la condizione su v non è più verificata,
quindi falsa). Il primo controllo sulla condizione viene
effettuato all'ingresso nel ciclo, prima della prima
iterazione, è quindi possibile che le istruzioni
appartenenti a bloccoDiIstruzioni non vengano mai eseguite.
Ciò avviene quando condizione_su_v restituisce
immediatamente il valore false.
Istruzione_su_v
è un'istruzione che modifica il valore della
variabile di controllo v. Tale istruzione generalmente fa si
che v tenda al valore che soddisfa la condizione di uscita
(quindi tale da rendere condizione_su_v falso). Se
così non fosse il rischio sarebbe quello di mandare il
processo in loop, cioè creare un ciclo infinito, senza
uscita.
L'esempio di seguito contiene codice PHP che costruisce
una tabella tramite l'istruzione for.
<!--file: helloworld.html -->
<HTML>
<HEAD>
<TITLE>Example 7.01</TITLE>
</HEAD>
<BODY>
<?
echo ("<TABLE ALIGN=CENTER BORDER=1 CELLSPACING=5>");
for ($j=1;$j<=5;$j++) {
echo ("<TR>");
for ($k=1;$k<=3;$k++)
echo ("<TD> Line $j, Cell $k </TD>");
echo("</TR>");
}
echo ("</TABLE>");
?>
</BODY>
</HTML>
Il codice genera l'output:
| Line 1, Cell 1 | Line 1, Cell 2 | Line 1, Cell 3 |
| Line 2, Cell 1 | Line 2, Cell 2 | Line 2, Cell 3 |
| Line 3, Cell 1 | Line 3, Cell 2 | Line 3, Cell 3 |
| Line 4, Cell 1 | Line 4, Cell 2 | Line 4, Cell 3 |
| Line 5, Cell 1 | Line 5, Cell 2 | Line 5, Cell 3 |