Continua la nostra guida PHP di base, oggi ci dedichiamo ad analizzare degli strumenti fondamentali di PHP: IF,ISSET ed ELSE. Scopriamo come si usano.
[lightgrey_box]
SOMMARIO GUIDA
Parte 2: Funzioni per gestire le stringhe
Parte 4: Guida Cicli IF, ELSE, ISSET, EMPTY
Parte 6: i cicli PHP: Do,While – For – Foreach
[/lightgrey_box]
La funzione IF è un pilastro portante di tutto PHP e, più astrattamente, dei linguaggi di programmazione in generale. IF svolge la funzione di controllo e permette di eseguire porzioni codice SOLO SE l’istruzione al suo interno risulta VERA (true). Vediamo insieme come comporre il nostro primo ciclo IF in modo corretto.
Funzione IF di base
<?php if( $a > 100){ echo "La variabile è maggiore di 100."; //Il codice echo viene eseguito SOLO SE la variabile $a è maggiore di 100 } ?>
Come potete vedere la sintassi è molto semplice: <?php if(condizione){ istruzioni da eseguire } ?>
Ciclo IF ed ELSE per controlli più accurati
Oltre al semplice IF il più delle volte i programmatori usano l’abbinamento IF ed ELSE per controllare e fare eseguire determinati blocchi di codice a seconda di certe condizioni. Ecco un esempio pratico:
<?php $a = 10; $b = 5; if( $a > $b ){ echo "La variabile A è maggiore di B."; } else { echo "La variabile B è maggiore di A."; }//fine ciclo ?>
In questo caso particolare come vedete, il controllo esegue il primo codice echo solo se $a è maggiore di $b ALTRIMENTI (else) esegue l’ultimo echo. Nulla ci vieta ovviamente di usare l’ultimo else finale per un fallback nel caso nessuna delle condizioni precedenti fosse vera. Ecco un esempio:
<?php $a = 10; $b = 5; if( $a > $b ){ echo "La variabile A è maggiore di B."; } else if( $b > $a ){ echo "La variabile B è maggiore di A."; } else { echo "Fallback."; }//fine ciclo ?>
In questo caso specifico la fallback dell’ultimo else, di fatto non ha molto senso se ci pensate, in quanto, matematicamente, o si avvera la prima ipotesi (a>b) o la seconda (b>a). In altri casi meno “sicuri” e meno matematici però è sempre buona norma predisporre un messaggio di alert nel caso non si avverassero le prime ipotesi.
Uso della funzione ISSET
La funzione isset serve per verificare l’esistenza di una variabile ed il suo uso è strettamente legato ad IF. Ecco un esempio pratico del suo uso:
$_POST['myVar']; // Prima dell'utilizzo $_POST['myVar'] if (isset($_POST['myVar'])) { // Istruzioni se $_POST['myVar'] esiste }
Uso della funzione EMPTY
Una funzione similare a prima vista ma in realtà profondamente diversa è EMPTY() di PHP. Empty ci permette di verificare se la variabile è vuota.
<?php if (empty($a)){ echo "variabile vuota";} ?>
In alternativa se volete evitare di usare empty potete scrivere in questo modo:
<?php if($a == ""){echo "variabile vuota";} ?>
Scrittura alternativa del ciclo
La struttura IF consente anche una scrittura alternativa, che personalmente, uso per dividere meglio le porzioni di codice senza dover utilizzare troppe parentesi graffe che, oltre a “sporcare il codice” possono portare a dimenticanze (chiusura non data etc).
Ecco la struttura alternativa del ciclo IF
<?php if(isset($a)): ?> //Codice primo blocco <?php else: ?> //Codice secondo blocco <?php endif; ?>
Come vedete vengono “evitate” le parentesi graffe. Per chiudere il ciclo basterà specificare endif; alla fine dei blocchi di codice.
Conclusioni
Spero che questo articolo vi sia servito per avere un’infarinatura generale delle potenzialità di IF, ELSE, ISSET ed EMPTY. Vi invito a visionare tutte le nostre guide tematiche o a cercare direttamente nelle apposite sezioni l’articolo di cui avete bisogno.
Se ti è piaciuto questo articolo condividilo sui tuoi social network preferiti!
ciao, ho bisogno di un consiglio.
Ho un elenco che prende dati da un database, un form per l’inserimento e un altro per la modifica.
Inizialmente erano 3 pagine separate richiamate all’occorrenza ora le ho unificate in un unica pagina e ho usato: if (isset($_GET[‘act’]))
if ($_GET[‘act’]==’add’) ..
if ($_GET[‘act’]==’mod’) …
else … echo ‘elenco’
Va bene come struttura di una pagina php o è totalmente sbagliata? C’è qualche metodo più pulito di riscrivere il tutto? conviene avere 3 pagine separata per le 3 azioni?
Ciao Giacomo questi tipi di “scelte” stilistiche sono troppo personali, ogni programmatore alla fine ti dirà un metodo diverso, scegli la funzione che preferisci e che reputi più adatta a quella situazione. Con l’esperienza vedrai che sarai in continua evoluzione 😉 è anche questo il bello di questo lavoro dopotutto.
Ciao Riccardo,
Complimenti per l’articolo, se invece volessi stampare a video(echo) alcune scritte solo se una condizione è vera, mi spiego sto sviluppando un quiz se l’utente riesce a fare almeno 8/10 corrette riceve un buono-sconto, quest’ultimo però deve essere visualizzato solo se la condizione è true, come posso fare?
Grazie mille in anticipo!