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
   49   50   51   52   53   54   55   56   57   58   59