W3docs

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:

  1. Inizializzazione — viene eseguita una sola volta, prima che il ciclo inizi; di solito imposta un contatore.
  2. Condizione — viene verificata prima di ogni iterazione. Finché è true, il corpo viene eseguito; quando diventa false, il ciclo si interrompe.
  3. 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:

php— editable, runs on the server

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:

php— editable, runs on the server

Il codice sopra produce il seguente output:

apple
banana
cherry

Nota 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:

  • break interrompe il ciclo immediatamente e continua con il codice successivo.
  • continue salta 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 for quando conosci in anticipo il numero di iterazioni, o hai bisogno di un contatore / indice.
  • Usa foreach per iterare sugli elementi di un array o di un object senza gestire un indice.
  • Usa while quando si itera fino a quando una condizione cambia e non esiste un contatore naturale.
  • Usa do...while quando 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.

Esercitazione

Pratica
In PHP, quali sono le tre espressioni del ciclo 'for', in ordine?
In PHP, quali sono le tre espressioni del ciclo 'for', in ordine?
Was this page helpful?