Guida PHP

Home | Guida PHP | Art. # 5

Istruzioni condizionali in PHP

Registrazione Domini
Registrazione Domini Internet ai prezzi più bassi d'Europa: soli 5,40 euro più IVA all'anno!

Come la vita anche uno script è condizionato da eventi, previsti o inprevisti, che vanno sempre e comunque gestiti. Il nostro comportamento quotidiano è fatto di domande, di risposte, di scelte e di alternative da vagliare a seconda del caso specifico... o di più casi che si intersecano tra loro.

Ad esempio, diciamo stesso a noi stessi: se ho fame mangio. Oppure: se ho sonno dormo altrimenti esco. O ancora: Se domani è una bella giornata esco, altrimenti resto a casa e guardo la televisione, oppure imparo a programmare in PHP.

Un programma PHP (o più correttamente, di uno script) non ha fame, sonno o più o meno voglia di uscire, ma la sua vita può essere condizionata da eventi come la data e l'ora ed in generali le azioni degli utenti come la navigazione delle pagine, l'utilizzo di un modulo di ricerca, l'immissione di dati che saranno inviati via email o registrati in un database.

E' necessario controllare tutti questi eventi e gestirli. Iniziamo però da esempi sintattici molto semplici e facciamo la conoscenza dei tre costrutti che il PHP mette a disposizione per la gestione delle istruzioni condizionali: il comando if, il comando switch e l'operatore condizionale ternario.

Iniziamo con un esempio col comando if:

<?
    $a = 10;
    $b = 20;
    if ($a == $b)
    {
        echo "A è uguale a B";
    }
    else
    {
        echo "A è diversa da B";
    }
?>

In questo caso verrà eseguito il comando contenuto nel blocco else, dato che A e B non sono uguali. Possiamo comunque migliorare e potenziare il controllo aggiungendo ulteriori blocchi alla condizione, come nell'esempio che segue:

<?
    $a = 10;
    $b = 20;
    if ($a == $b) 
    {
        echo "A è uguale a B";
    }
    else if ($a > $b)
    {
        echo "A è maggiore di B";
    }
    else
    {
        echo "A è minore di B";
    }
?>

Verrà eseguito sempre il comando contenuto nel blocco else che, rispetto al precedente esempio, non riporta più la dicitura generica che indica la diversità tra A e B dato che, controllando che A è minore o maggiore a B, stiamo implicitamente controllando che A e B non sono uguali.

Passiamo ad un esempio che utilizza gli operatori logici in una condizione:

<?
    $stringa = "ASP";
    if ($stringa == "" || $stringa == "ASP")
    {
        echo "Stiamo parlando di PHP, non di ASP!";
    }
    else
    {
        $stringa = "PHP";
        echo $stringa;
    }
?>

Dato che la stringa contiene il valore ASP ed il controllo verifica che la stringa non sia vuota (e non lo è) e che non contenga il valore ASP, verrà restituito il risultato contenuto nel blocco if; diversamente verrà lanciato a video il valore di default contenuto nel blocco else. Non ha senso, ma è solo un esempio.

Chiedo scusa ad ASP che, per quanto il PHP mi piaccia, resta il mio primo ed unico amore :-)

Facciamo adesso un esempio col comando switch:

<?
    $nome = "Luca";
    switch ($nome)
    {
        case "Luca" :
            echo "Il mio nome è Luca";
            break;
        case "Massimiliano" :
            echo "Il mio nome è Massimiliano";
            break;
        case "Claudio" :
            echo "Il mio nome è Claudio";
            break;
        default :
            echo "Nessun nome!";
            break;
    }
?>

Il risultato sarà "Il mio nome è Luca".

L'operatore condizionale ternario funziona come una tradizionale istruzione condizionale ma permette di specificare solo due casi, quello da verificare e quello alternativo.

La sintassi è la seguente:

<?
    $nome = "Luca";
    $nome == "Luca" ? print "Il mio nome è Luca" : print "Nessun nome!";
?>

Anche in questo caso il risultato sarà "Il mio nome è Luca". Con questo tipo di operatore condizionale è necessario utilizzare il comando print per effettuare la stampa a video dell'output.

 

Scritto in data 18/12/2007

Segnalalo ad un Amico | Aggiungilo ai Preferiti

© 2008 Appunti PHP - A cura di Luca Ruggiero - Partita IVA 05564851219 - Privacy | Pubblicità | Contatti