Il ciclo "for" in PHP
Impara il ciclo "for" in PHP: inizializzazione, condizione e incremento — con conteggio, passi personalizzati, array, cicli annidati, break e continue.
In PHP, l'istruzione for è una struttura di controllo che esegue un blocco di codice un numero noto di volte. Si utilizza quando il numero di iterazioni è fisso e prevedibile — per stampare i numeri da 1 a 10, costruire una tabella HTML con N righe, o scorrere un array indicizzato per posizione.
Questo capitolo tratta le tre parti di un ciclo for, il modo in cui ciascuna viene eseguita, e i pattern pratici: conteggio crescente e decrescente, passi personalizzati, iterazione su array, cicli annidati e le parole chiave break / continue.
Sintassi
Un ciclo for è composto da tre espressioni tra parentesi, separate da punti e virgola, seguite dal corpo del ciclo tra parentesi graffe:
for (initialization; condition; increment) {
// code to be executed on each pass
}Le tre espressioni vengono eseguite in un ordine specifico:
- Inizializzazione — viene eseguita una sola volta, prima che il ciclo inizi; di solito imposta un contatore.
- Condizione — viene verificata prima di ogni iterazione. Finché è
true, il corpo viene eseguito; quando diventafalse, il ciclo si interrompe. - Incremento — viene eseguito dopo ogni iterazione, appena prima che la condizione venga verificata di nuovo; di solito fa avanzare il contatore.
Inizializzazione
L'inizializzazione imposta il valore di partenza del contatore. Viene eseguita una sola volta all'inizio. Per iniziare il conteggio da 1:
$counter = 1;Condizione
La condizione decide quando fermarsi. Il ciclo continua a girare finché la condizione è vera. Per iterare mentre il contatore è 10 o inferiore:
$counter <= 10;Se la condizione è false al primo controllo, il corpo non viene mai eseguito.
Incremento
L'incremento modifica il contatore dopo ogni passaggio in modo che il ciclo termini prima o poi. Per aggiungere 1 ogni volta:
$counter++;Se l'incremento non rende mai la condizione falsa, si ottiene un ciclo infinito. Assicurati che il contatore si avvicini alla condizione di arresto.
Un esempio completo di conteggio
Mettendo insieme le tre parti, questo ciclo stampa il valore di $counter a ogni passaggio, da 1 a 10:
Il codice sopra produce il seguente output:
1 2 3 4 5 6 7 8 9 10 (Senza . " ", echo stamperebbe le cifre senza spazi — 12345678910 — perché echo non aggiunge nulla tra i valori.)
Conteggio decrescente e passi personalizzati
L'incremento è semplicemente un'espressione, quindi può decrementare o avanzare con passi diversi da 1. Per contare al contrario da 10 a 1, si parte alto, ci si ferma a 1 e si usa $i--:
<?php
for ($i = 10; $i >= 1; $i--) {
echo $i . " ";
}
?>Per avanzare di 2 (stampando i numeri pari fino a 10), si usa $i += 2:
<?php
for ($i = 2; $i <= 10; $i += 2) {
echo $i . " "; // 2 4 6 8 10
}
?>Iterazione su un array
Un ciclo for può scorrere un array indicizzato per posizione. La condizione utilizza count() per sapere quanti elementi ci sono, e $i viene usato come indice dell'array:
Il codice sopra produce il seguente output:
apple
banana
cherryNota che il ciclo parte da 0 (gli array PHP sono indicizzati a zero) e la condizione è $i < count($fruits) — si usa < invece di <= perché l'ultimo indice valido è count - 1.
Per gli array — specialmente gli array associativi in cui le chiavi non sono interi sequenziali — il ciclo foreach è generalmente più chiaro e sicuro rispetto a un ciclo for, poiché non è necessario gestire manualmente un indice.
Cicli annidati
È possibile inserire un ciclo for all'interno di un altro. Il ciclo interno viene eseguito completamente per ogni singolo passaggio del ciclo esterno. Questo è comune per griglie, tabelle e output in stile moltiplicazione:
<?php
for ($row = 1; $row <= 3; $row++) {
for ($col = 1; $col <= 3; $col++) {
echo $row * $col . "\t";
}
echo "\n";
}
?>Questo stampa una griglia di moltiplicazione 3×3:
1 2 3
2 4 6
3 6 9 Uscita dal ciclo e salto delle iterazioni
Due parole chiave offrono un controllo più preciso all'interno del corpo del ciclo:
breakinterrompe il ciclo immediatamente e continua con il codice successivo.continuesalta il resto dell'iterazione corrente e passa alla successiva (l'incremento viene comunque eseguito).
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i == 4) {
continue; // skip 4
}
if ($i == 7) {
break; // stop entirely at 7
}
echo $i . " ";
}
?>Il codice sopra produce il seguente output:
1 2 3 5 6 Il 4 viene saltato da continue, e il ciclo si interrompe prima di stampare 7 a causa di break. Scopri di più nel capitolo break e continue.
Quando usare for rispetto ad altri cicli
- Usa
forquando conosci in anticipo il numero di iterazioni, o hai bisogno di un contatore / indice. - Usa
foreachper iterare sugli elementi di un array o di un object senza gestire un indice. - Usa
whilequando si itera fino a quando una condizione cambia e non esiste un contatore naturale. - Usa
do...whilequando il corpo deve essere eseguito almeno una volta prima che la condizione venga verificata.
Conclusione
Il ciclo for è una struttura di controllo essenziale in PHP per ripetere codice un numero noto di volte. Padroneggia le sue tre parti — inizializzazione, condizione e incremento — e potrai contare in su o in giù, avanzare di qualsiasi quantità, scorrere array per indice e annidare cicli per costruire griglie. Per l'iterazione elemento per elemento su array, preferisci foreach; per la ripetizione indefinita, ricorri a while.