Luigi Arlotta
a- a+

Il Costrutto If... Then... Else...

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:


$Surname = "Bit";
if ($Surname == "Bit")

echo ("Hello, Mr. Bit!");

else

echo ("Who are you?");

?>

 

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

= = Uguale a
> Maggiore di
< Minore di
!= Diverso da
>= Maggiore o uguale a
<= Minore o uguale a
Tab.5.1: Operatori di confronto

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

istruzione2 in HTML

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:


$Surname = "Bit";
if ($Surname == "Bit"): ?>

Hello, Mr. Bit!



Who are you?

 

 

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. Tali operatori sono espressi in PHP tramite la sintassi riportata in tabella 5.2.

&& AND
|| OR
^ XOR
! NOT
Tab.5.2: Operatori booleani

Probabilmente conoscerete il funzionamento delle tavole di verità che comunque sono riportate nella tabella 5.3.

a b a AND b a OR b NOT a
Vero Vero Vero Vero Falso
Vero Falso Falso Vero Falso
Falso Vero Falso Vero Vero
Falso Falso Falso Falso Vero
Tab.5.3: Tavole di verità

 



Ti potrebbe interessare anche

commenta la notizia

Ci sono 1 commenti
Anonimo
dovrei chiederti alcune cose su un mio ciclo if del mio programma che non gira bene puoi contattarmi qui su skype ---> killertonpowa