Tutorials » PHP » Condizione if

Condizione if

Una delle funzioni comuni alla maggior parte dei linguaggi è la condizione if, che in italiano significa se e permette al php di fare delle scelte davanti a strade differenti. Supponiamo di avere due vie possibili da percorrere e che a seconda della condizione fosse necessario sceglierne obbligatoriamente una, if è la parola che ci permettere di dichiarare a priori quale strada scegliere. Analizziamo questo codice:
<?

$a = True;
$b = False;

if ($a) {
print "La variabile $a è vera";
}

if ($b) {
print "La variabile $b è falsa";
}
?>
Avviandolo ci apparirà a video la frase La variabile $a è vera, mentre non ci apparirà La variabile $b è falsa, questo perchè if ha filtrato nel primo caso $a che, essendo vera, ha permesso l'esecuzione di tutto quello che si trova tra le parentesi graffe successive, mentre nel caso in cui il controllo viene effettuato su $b il codice presente tra le graffe viene ignorato perchè la variabile in questo caso è falsa. Per quanto riguarda la sintassi la condizione if non necessita di punto e virgola alla chiusura se utilizziamo le graffe, mentre nei casi in cui l'azione sia solamente una è possibile ommetterle utilizzando nuovamente il punto e virgola, ad esempio: if ( true ) print " testo ";

Operatori di confronto

Prima di proseguire è necessaria la conoscenza dei significati dei seguenti operatori, che ci permettono di valutare le variabili tramite il TRUE è il FALSE:
$a == $b Uguale rende True se $a è uguale a $b
$a === $b Identico Rende True se $a è uguale a $b e se le variabili sono dello stesso tipo
$a != $b Diversi Rende True se $a è diverso da $b
$a <> $b Diversi Rende True se $a è diverso da $b
$a !== $b Non Identici Rende True se $a è diverso da $b o se non sono dello stesso tipo
$a < $b Rende true se $a è minore di $b
$a <= $b Rende True se $a è minore o uguale a $b
$a > $b Rende true se $a è maggiore di $b
$a >= $b Rende True se $a è maggiore o uguale a $b
Se noi uniamo la condizione if agli operatori di confronto otteniamo un sistema che ci permette la diversificazione delle azioni a seconda dei casi.
<?


$a = mt_rand( 0, 10 );

if ( $a < 5 ) {
print "La variabile $a è minore di 5";
}

if ( $a > 5 ) {
print "La variabile $a è maggiore di 5";
}

if ( $a == 5 ) {
print "La variabile $a è uguale a 5";
}

?>
La prima parte del codice setta la variabile $a con l'aiuto della funzione mt_rand che sceglie casualmente un numero tra i valori compresi nelle parentesi il primo numero, nel nostro caso lo 0, e il secondo, quindi 10. In questo modo rieseguendo il codice $a muterà sempre il suo valore casualmente. Se $a è minore di 5 il primo script verrà eseguito perchè la condizione risulta vera, quindi True, gli altri due controlli if verranno ignorati perchè falsi. Possiamo fare lo stesso discorso nei casi delle stringhe:
<?


$a = "test";

if ( $a == "test" ) {
print "La variabile $a è 'test'";
}

if ( $a != "test" ) {
print "La variabile $a non è 'test'";
}

?>
Anche in questo caso il controllo if che attiverà il codice contenuto tra le graffe sarà il primo, perchè nella riga in testa abbiamo settato $a col valore di test mentre verrà salatato il secondo perchè $a non è diverso da test.

Operatori logici

$a and $b Rende true se sia $a sia $b sono true
$a && $b Rende true se sia $a sia $b sono true
$a or $b Rende true se o $a o $b è true
$a || $b Rende true se o $a o $b è true
$a xor $b Rende true se o $a o $b è true, ma non entrambi
!$a Rende True se $a non è True
Grazie agli operatori logici possiamo agire in casi in cui si necessiti di 2 o più condizioni:
<?


$a = 1;
$b = 1;

if ( $a == 1 && $b == 0 ) {
print "$a è uguale a 1 e $b è uguale a 0";
}

if ( $a == 1 && $b == 1 ) {
print "$a è uguale a 1 e $b è uguale a 1";
}

?>
La condizione che risulterà vera e quindi verrà eseguita sarà nell'ordine la seconda, dove viene verificato se $a è uguale a 1 e se $b è uguale a 1, l'operatore && o and richiede che entrambi siano veri per poter restituire True, avendo settato a inizio codice le due variabili a 1 otterremo la stampa della frase $a è uguale a 1 e $b è uguale a 1.

else

Vediamo un'altra parte della funzione if:
<?


$a = "prova";

if ( $a == "test" ) {
print "La variabile $a è 'test'";
}
else
{
print "La variabile $a non è 'test'";
}

?>
se volessimo leggere in italiano questo script partendo dall'if potremmo dire se $a è uguale a 'test' scrivi "La variabile $a è 'test'" altrimenti scrivi "La variabile $a non è 'test'", else ha il compito di far eseguire tutto quello che si trova nelle graffe che ne seguono solo se l'if di appartenenza è risultato False. Nel caso in esame, dato che questa volta $a è stato eguagliato a prova, ci verrà stampata a video la frase La variabile $a non è 'test'.

else if

<?


$a = "mela";

if ( $a == "pera" ) 
{
print "La variabile $a è una pera";
}
else if ( $a == "pesca" )
{
print "La variabile $a è una pesca";
}
else if ( $a == "mela" )
{
print "La variabile $a è una mela";
}

?>
else if ha bisogno di 2 condizioni per permettere l'elaborazione del codice tra le graffe, la prima è che le precedenti condizioni appartenenti allo stesso gruppo siano risultate tutte false e la seconda è che la condizione presente alla sua destra sia vera, ecco perchè è facile intuire che il codice qui sopra ci restituirà a video la scritta La variabile $a è una mela.