Homepage -> Guida PHP

ISTRUZIONI CONDIZIONALI



Le istruzioni condizionali sono quelle con cui vengono realizzati operazioni del tipo " se si verifica una condizione, fai A, altrimenti B ". Si possono quindi avere semplici istruzioni if (senza l'istruzione "B"), if else (in cui ho la presenza sia delle istruzioni A e sia delle B), e if elseif per condizioni più articolate.


Istruzione If


if ( condizione = true )
{
    istruzione
}


In tali istruzioni, i controlli sulle condizioni possono essere eseguiti mediante gli operatori booleani:


> , < , >= , <= , == ( equivalenza ), != ( non equivalenza ), === ( equivalenza in valore e tipo )


e quelli logici:


AND ( && ) , OR ( || ), NOT ( ! ), !=


Esempio:


$a=5;
for($i=0;$i<7;$i++)
{
    if($i>=$a) { echo "$i <br>"; }
}


La condizione dell'istruzione if, $i>=$a, è che $i deve essere maggiore uguale a $a, cioè a 5; poichè il valore iniziale di i è 0, la condizione è rispettata solo quando $i è incrementata dal ciclo for ai valori di 5 e 6. Notate come non ci sia bisogno di scrivere condizione = true, in quanto la porzione di codice "= true" può essere omessa.
L'output è quindi:

5
6


Istruzione If - else


if ( condizione )
{
    istruzione
}
else
{
    istruzione 2
}


Quindi, se la condizione è rispettata, viene eseguita la prima istruzione, altrimenti ( else ) la seconda. Nel caso in cui si volessero introdurre due condizioni all'interno della stessa istruzione if, si può usare la if - elseif - else:


if ( condizione1 )
{
    istruzione 1
}
elseif ( condizione2 )
{
    istruzione 2
}
else
{
    istruzione 3
}


Quindi la terza istruzione viene eseguita solo nel caso in cui non siano rispettate nè la prima e nè la seconda condizione.

Di seguito viene riportato il codice di una semplice applicazione php basata su cicli ed istruzioni if, che permette di cambiare lo sfondo di una tabella usando dei link.


<HTML>
<BODY link="#000000" vlink="#999999" alink="#000000">
<TABLE border="5" height="50%" width="50%">
<TR>
<TD><CENTER><TABLE border=1 height="100%" width="100%" cellpadding="5" cellspacing="0">
<TR>
<TD><B><CENTER>Colore</CENTER></B></TD>
</TR>
<?php
$colore=array (
        1=>"red",
        2=>"yellow",
        3=>"brown",
        4=>"green",
        5=>"blue",
        6=>"pink"
        );
foreach($colore as $key=>$val)
{
    print("<TR><TD bgcolor=$val><A HREF=colorelinkato.php?color = $val> <CENTER>$val</CENTER></A></TD></TR> ");
}
?>
</TABLE></CENTER>
</TD>
<TD><TABLE border=1 height="100%" width="100%" >
<TR>
<TD colspan=4><B><CENTER>Intestazione</CENTER></B></TD>
</TR>
<?php
$lettere=array("a","b","c","d","e","f","g","h","i","l","m","n","o","p","q","r");

# passo come chiave 'color' , parametro dell'HREF dei link

if(!isset($_GET['color']))
{
    $i=0;
    while($i<count($lettere))
    {
    print("<TR><TD bgcolor=white><CENTER>$lettere[$i]</CENTER></TD>");
    $i++;
    print("<TD bgcolor=white><CENTER>$lettere[$i]</CENTER></TD>");
    $i++;
    print("<TD bgcolor=white><CENTER>$lettere[$i]</CENTER></TD>");
     $i++;
    print("<TD bgcolor=white><CENTER>$lettere[$i]</CENTER></TD></TR>");
    $i++;
    }
}
elseif($_GET['color']!=NULL)
{
    $i=0;
    while($i<count($lettere))
    {
    print("<TR><TD bgcolor=$_GET[color]><CENTER>$lettere[$i]</CENTER></TD>");
    $i++;
    print("<TD bgcolor=$_GET[color]><CENTER>$lettere[$i]</CENTER></TD>");
    $i++;
    print("<TD bgcolor=$_GET[color]><CENTER>$lettere[$i]</CENTER></TD>");
    $i++;
    print("<TD bgcolor=$_GET[color]><CENTER>$lettere[$i]</CENTER></TD></TR>");
    $i++;
    }
}
?>
</TABLE></TD>
</TABLE>
</BODY>
</HTML>


Dove, !isset($_GET['color']) è la condizione che riguarda il caso in cui non è settata la chiave color nell'array globale $_GET e cioè quando non viene cliccato alcun link. $_GET['color']!=NULL riguarda invece il caso in cui è stato cliccato un link e quindi scelto un nuovo colore di sfondo. Inizialmente, poiché $_GET è vuoto, vedrei la sotto-tabella Intestazione bianca; ciccando su di un colore, questa cambierà il suo colore di sfondo e sulla barra degli indirizzi leggerei http://localhost/colorelinkato.php?color = pink . Questo è il link all'esempio pratico.