...Personalizza la tua HomePage...
Questa Sezione è Dedicata a Tutti i Webmaster Nofiti e Non
Il Costrutto IF | ||||
|
||||
Il costrutto if (a) then (b) else (c), tramite il quale è possibile controllare il flusso del programma, ha in PHP la seguente sintassi: if (condizione) istruzione1; else istruzione2; La condizione generalmente consiste nel comparare una variabile con una costante o due variabili tra loro. Se la condizione risulta vera (cioè restituisce il valore true) allora viene eseguita istruzione1 altrimenti viene eseguita istruzione2. Vediamo subito un esempio. Il seguente codice: <HTML> <HEAD> <TITLE>Example 5.01</TITLE> </HEAD> <BODY> <? $Surname = "Bit"; if ($Surname == "Bit") echo ("Hello, Mr. Bit!"); else echo ("Who are you?"); ?> </BODY> </HTML> fornirà l'output: Hello, Mr. Bit! In quanto la prima condizione risulta subito verificata. Per eseguire confronti tra variabili e/o costanti si fa uso degli operatori di confronto, la cui sintassi PHP è riportata in tab.5.1 Tab.5.1: Operatori di confronto = = Uguale a < Minore di > Maggiore di != Diverso da >= Maggiore Uguale a <= Minore Uguale a Fate attenzione all'operatore "uguale a" che è espresso da due simboli "=" (uguale) affiancati ("=="). Uno degli errori più comuni commessi dai programmatori, non solo in PHP, è quello di dimenticare un "=" nell'eseguire un confronto. Questo tipo di errore altera gravemente il flusso logico del programma. Osservate le seguenti righe: if ($Lastname = = "Bit") echo "Hello, Mr. Bit!"; $Lastname = "Bit"; La prima istruzione viene interpretata come un confronto e restituisce il valore vero se la variabile $Lastname contiene il valore "Bit", falso altrimenti. La seconda istruzione invece assegna il valore "Bit" alla variabile $Lastname. Volendosi complicare la vita, PHP propone alcuni metodi alternativi per rappresentare un'istruzione if...then...else... Qui verranno menzionati solo a fini di completezza. <? ... if (condizione) : ?> istruzione1 in HTML <? else : ?> istruzione2 in HTML <? endif ?> Questa prima forma alternativa consente di definire un blocco di istruzioni HTML che verrà eseguito solo se la precedente condizione risulta vera. Il blocco viene concluso dall'istruzione endif. Il codice PHP che segue è funzionalmente analogo a quello visto all'inizio del capitolo, ma appare evidentemente più complesso: <HTML> <HEAD> <TITLE>Example 5.01</TITLE> </HEAD> <BODY> <? $Surname = "Bit"; if ($Surname == "Bit"): ?> Hello, Mr. Bit! <? else: ?> Who are you? <? endif ?> </BODY> </HTML> L'output sarà sempre: Hello, Mr. Bit! Se istruzione1 è un'istruzione composta e preferite evitare le parentesi graffe potete ancora far uso della parola chiave endif come mostrato di seguito. if (condizione) istruzione1; endif; Quando siamo interessati ad analizzare non più una sola, ma più condizioni prima di decidere quale istruzione eseguire, possiamo far uso della parola chiave elseif che ci consente di indicare una serie di condizioni che verranno analizzate una ad una in ordine sequenziale. Ogni condizione viene testata solo se tutte le precedenti sono risultate false. Se una condizione risulta vera tutte le condizioni successive, sia vere che false, non verranno prese in considerazione. Questo genere di costrutto viene spesso indicato col nome di catena if…then…else… Di seguito è riportato un esempio. [pending: esempio if... elseif... esleif... else ] Il costrutto IF (a) THEN (b) ELSE (c) viene completato dall'utilizzo degli operatori booleani AND, OR e NOT. |