Page 54 - Corso di PHP - Livello base
P. 54
?>
Che cosa succede se il nostro utente ha risposto A? Vedrà sul
proprio schermo questa scritta: “No, completamente sbagliata!
Bene, risposta esatta!”. Perché succede questo? Il blocco, scritto
in questo modo, ha controllato la prima condizione, che è
soddisfatta e quindi viene stampata la scritta corrispondente. Ma
ha controllato anche, separatamente, la seconda condizione,
quella della risposta B! Che non può essere soddisfatta perché
abbiamo utilizzato dei radio button e l'utente può dare una sola
risposta.
Quindi cosa succede? Il programma pensa “la condizione
introdotta dal secondo if non è verificata, quindi stampo tutto
ciò che è racchiuso nell'else”. Ed ecco perché vengono
stampate la prima e la terza scritta. Possiamo metterci una pezza
mettendo un if($_POST['risposta'] == 'C') prima della terza
scritta, ma faremo solo sprecare “energie” utili al nostro
preprocessore che dovrà controllarsi tutte le condizioni (invece,
con un blocco corretto di if-else, si fermerà non appena avrà
trovato la condizione soddisfatta).
Possiamo anche avere tante condizioni e due sole azioni
possibili, per esempio un quiz che ha domande con cinque
risposte, e vogliamo stampare solo due scritte “Risposta esatta”
o “Risposta sbagliata”. In questo caso, supponendo che la
risposta esatta sia la “A”, scriveremo:
<?php
if ($_POST['risposta'] == 'A')
{
echo "Risposta esatta!";
}
else
{
54