Corso Web – Lezione PHP – #6 – Il ciclo for
- Introduzione
- Il problema
- Il modulo html e php
- La prova sul campo
- Video della lezione
Introduzione
In questa lezione, oggi proseguiamo il discorso iniziato nella lezione precedente, sulle strutture fondamentali della programmazione in linguaggio PHP.
In particolare l’esercizio proposto mostrerà l’uso del ciclo for nella programmazione. Una struttura ciclica è un blocco di istruzioni che si ripete durante l’esecuzione di un programma. Un cicli for è detto ciclo a “ripetizione definita” ovvero il numero delle ripetizioni è noto a priori.
Il problema
Mediante un modulo html l’utente inserisce due numeri interi a e b; all’invio del modulo il programma php esegue un ciclo che stampa in html i numeri compresi nell’intervallo [a,b]. E’ possibile che l’utente inserisce un numero a maggiore di b il programma php associato noi verrà eseguito a meno che non si scambiano i valori di a e b.
Il ciclo for in php è della forma:
Il ciclo for in php è della forma:
for (variabile contatore=inizio; variabile contatore<[=]fine, variabile contatore=variabile contatore+passo)
{ istruzione 1;
istruzione 2;
….
istruzione n;
}
nel caso di un ciclo con incremento, nel caso di ciclo a decremento la struttura for cambia come riprotato qui sotto:
for (variabile contatore=fine; variabile contatore>[=]inizio, variabile contatore=variabile contatore- passo)
{ istruzione 1;
istruzione 2;
….
istruzione n;
}
Alcuni esempi:
for ($k=1;$k<=10;$k++)
{ echo $k.”<br>”;
stampa i numeri da 1 a 10, oppure ad esempio;
for ($k=0;$k<10;$k++)
echo ($k+1).”<br>”;
è equivalente al primo ciclo ma parte con valore zero (è utilizzato quando si utilizzano i vettori). Come ultimo esempio un ciclo a decremento:
for ($k=100;$k>0;$k=$k=$k-2)
echo $k.”<br>”;
in questo ciclo sono stampati i numeri pari da 100 a 2.
Ora dopo aver illustrato come opera il ciclo “for” passiamo esaminare il modulo html che poi avrà un form che nell’attributo “action” avrà lo script php per richiamare la variabile di ambiente $PHP_SELF che farà in modo che venga eseguito il codice php presente nella stessa pagina, come per altro visto nella lezione precedente.
Il modulo html e il codice php
Una prima versione del codice è questa:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
Esercizio 6 PHP e HTML
</title>
</head>
<body>
<h2>Visualizza i numeri compresi fra a e b </h2>
<h1>Dati:</h1>
<form name="frmsaluta" action="<?php $PHP_SE_LF ?>" method="post">
<table border="1">
<tr>
<td><label for="a">Numero a:</label></td>
<td><input type="number" name="a" id="a" value="Digita il valore" require>
</tr>
<tr>
<td><label for="b">Numero b:</label></td>
<td><input type="number" name="b" id="b" value="Digita il valore" require>
</tr>
<tr>
<td><input type="submit" name="valuta" id="valuta" value="Valuta"></td>
<td><input type="reset" name="cancella" id="cancella" value="Cancella
dati"></td>
</tr>
</table>
</form>
<?php
if ($_SERVER['REQUEST_METHOD']=='POST')
{
$a=$_POST['a'];
$b=$_POST['b'];
if ($a>$b)
{
$tmp=$a;
$a=$b;
$b=$tmp;
}
for ($k=$a;$k<=$b;$k=$k+1)
echo "<h3>".$k."</h3>";
}
?>
</body>
</html>
La prova sul campo
Lo script php viene eseguito solo se i controlli html associati alle variabili $a, $b contengono un valore, se il valore di a è maggiore di b sono scambiati.
Il form html realizzato e visualizzato nel browser apparirà come nell’immagine sotto riportata.

Una volta che l’utente clicca sul pulsante “valuta” vien avviata l’esecuzione del codice php e l’output comparirà sotto come indicato in figura.

Una seconda versione prevede ad esempio di stampare in forma tabellare che stampa in forma tabellare i valori di $k, $k*2 (il doppio) e $k*10 è semplicemente realizzata con la sostituzione di un frammento di codice.
echo "<table border='2'>";
for ($k=$a;$k<=$b;$k=$k+1)
{
echo "<tr>";
echo "<td>".$k."</td>";
echo "<td>".($k*2)."</td>";
echo "<td>".($k*10)."</td>";
echo "</td>";
}
echo "</table>";
Mediante il ciclo “for” è costrita una tabella per stampare l’output. Il risultato visualizzato nel browser è in figura sotto riportato.

In conclusione il ciclo “for” è utile per molti problemi in cui sono note il numero delle ripetizioni, nella prossima lezione si introdurranno le strutture cicliche a ripetizione indefinita “while” e “do .. while” utili nel caso l’esecuzione del ciclo debba essere subordinata ad una o più condizioni.