if … else è una struttura di controllo come lo è il ciclo for e come quest ultimo il suo compito è quello di verificare l’avverarsi o meno di una o più condizioni durante l’esecuzione di uno script. La grammatica di questa struttura è flessibile. Tutto dipende dalle chiamate (linee di codice) che s’intendono legare alla struttura. La grammatica base:
if ([[espressione]])
// allora esegui questa riga
else
// esegui quest’altra riga
[espressione] indica un’espressione algebrica in cui si comparano almeno due valori. Se l’espressione è soddisfatta allora il motore PHP passa ad eseguire le righe incluse nella struttura, altrimenti le ignora, oppure in presenza del controllo else passa ad eseguire le altre righe incluse in struttura. Il controllo “else” non è obbligatorio.
Le espressioni algebriche comparano almeno due elementi tra loro, oppure la “condizione” di un unico elemento. Considerando due variabili, $a e $b, queste possono dar luogo alle seguenti espressioni:
$a = $b diventa $a == $b se l’espressione si trova inclusa tra le parentesi di dichiarazione della struttura if … else. |
Per comodità riprendo lo script utilizzato per l’esempio sul ciclo for. Ci aggiungo la struttura if … else e ottengo questo nuovo script:
<?php
$echo = “”;
for ($x=1;$x<=10;$x++){
if ($x==3)
$echo .= ”- il valore di <b>$/x</b> è <b>$x</b> <br />”;
else if ($x > 7)
$echo .= “- il valore di <b>$/x</b> è <b>maggiore di 7</b><br />”;
else
$echo .= “- condizione non verificata<br />”;
};
echo str_replace(”$/”,”$”,$echo);
?>
Nota bene: se vuoi fare anche tu i tuoi esperimenti con questi script d’esempio… dopo aver copiato e incollato il codice potrebbe essere necessario riscrivere gli apici e i doppi apici per una corretta esecuzione dello script. Ciò dipende dal CSS utilizzato con questo layout… che non cambio! ![]()
Mando in esecuzione lo script:

Nota bene: tra le parentesi della struttura if … else possono essere inserite una o più informazioni da verificare: stringhe non in variabile, variabili, come anche chiamate di funzioni standard o create dal programmatore.
Scrivevo all’inizio di “grammatica flessibile”. Quando è necessario includere più righe di codice all’interno di un if … else occorre far capire al motore PHP riga per riga di essere ancora “dentro” la struttura di controllo. Questo si può fare delimitando il confine entro cui il motore PHP è chiamato a “capire” di essere all’interno. Il metodo descritto ricorda molto da vicino la sintassi utilizzata per dichiarare una funzione o un ciclo for: il codice viene incluso tra due parentesi graffe.
Considera questo script:
<?php
$variabile = 3;
$stringa = “$/php”;// lo script verifica che la chiamata della funzione str_replace() su $stringa dia “php” e che $variabile sia uguale a 2
if (str_replace(“$/”,”",$stringa) == “php” AND $variabile == 2){
echo “- contenuti riconosciuti”;
$variabile = $variabile/2;// se la condizione non è verificata, lo script verifica se $variabile > 2
}elseif($variabile > 2){
echo “- stringa non riconosciuta<br />
-valore della variabile uguale a 3″;
$variabile = $variabile/3;
}
?>
Questo è l’output:

Nota bene: ripeto un’informazione già data in precedenza. Il marcatore d’isturzione punto e virgola - obbligatorio perché il motore PHP capisca di dover passare alla prossima istruzione - non è necessario nel caso delle parentesi graffe. Scrivere } oppure }; non fa differenza per il motore PHP, che considera la } come marcatore d’istruzione.
Le 


[...] in presenza di una dichiarazione di una funzione. Ebbene il costrutto if .. else un esempio un pò infelice, che per ora lascio. Infelice perché più che costrutto si tratta di [...]
Pingback di [fp4] Definizione di Costrutto in PHP « php4people … 12% refresh — 12 Aprile 2008 @ 19:03