Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 17 di 67
  • livello intermedio
Indice lezioni

Approfondimenti sull'operatore ternario

Come utilizzare l'operatore ternario di PHP nella forma estesa, abbreviata e concatenata quale alternativa al costrutto condizionale if/else. Una soluzione per rendere più snello il nostro codice.
Come utilizzare l'operatore ternario di PHP nella forma estesa, abbreviata e concatenata quale alternativa al costrutto condizionale if/else. Una soluzione per rendere più snello il nostro codice.
Link copiato negli appunti

I costrutti condizionali basati sui blocchi if e else permettono di eseguire del codice in base a determinate condizioni. Come accennato nel precedente capitolo esiste però un operatore che consente di rappresentare un costrutto condizionale in una maniera alternativa e molto più snella dal punto di vista del codice digitato. Stiamo parlando dell'operatore ternario.

Quest'ultimo rappresenta una valida alternativa sintattica alle espressioni if/else nel caso in cui sia necessario valutare espressioni semplici. Tale operatore è così chiamata poiché prevede l'adozione di 3 diversi argomenti, cioè nell'ordine:

  1. l'espressione da valutare;
  2. il valore di ritorno nel caso in cui l'espressione sia vera;
  3. il valore di ritorno nel caso in cui l'espressione sia falsa.

A tal proposito è possibile analizzare il semplice esempio seguente:

$maggiorenne = ($eta >= 18) ? true : false;

Il codice proposto mostra come utilizzare l'operatore ternario. Il primo argomento ($eta >= 18) è l'espressione da valutare, seguito da un punto interrogativo ? e i due argomenti in caso di espressione vera o falsa separati da due punti :.

Come sottolineato in precedenza, l'operatore ternario rappresenta un'alternativa al costrutto if/else; a riprova di ciò un esempio equivalente a quello precedente sarebbe stato espresso tramite questi ultimi in questo modo:

if ($eta >= 18) {
    $maggiorenne = true;
} else {
    $maggiorenne = false;
}

Operatore ternario abbreviato

Si analizzi un ulteriore esempio di utilizzo dell'operatore ternario per la valutazione di una condizione:

$messaggio = "Ciao " . ( $username ? $username : 'utente' );

Nell'esempio appena presentato la variabile $messaggio conterrà il valore relativo alla "username" dell'utente soltanto nel caso in cui la variabile associata ad essa ($username) sia stata effettivamente definita, in caso contrario verrà utilizzata la stringa utente.

Se il valore da restituire nel caso in cui l'espressione sia vera dovesse corrispondere esattamente all'espressione valutata, allora potrà essere omesso il secondo parametro unendo il punto interrogativo con i due punti, ?:, ottenendo così quello che viene chiamato l'operatore ternario abbreviato. Sulla base di quanto detto è possibile riscrivere l'esempio precedente in questo modo:

$messaggio = "Ciao " . ( $username ?: 'utente' );

Operatori ternari concatenati

Dato che la valutazione di un operatore ternario restituisce un valore, è anche possibile concatenare operatori ternari tra di loro.

$patente = ($eta >= 18) ? ($esame_superato ? true : false) : false;

Nell'ultimo esempio proposto abbiamo due operatori ternari: il primo verifica che il valore associato alla variabile $età sia maggiore o uguale a "18", il secondo viene invece valutato soltanto se la prima condizione risulta vera, verificando che l'esame sia stato superato. La variabile $patente sarà quindi vera se e solo se si verificano entrambe le condizioni, altrimenti sarà falsa.

Per quanto ci venga concessa la possibilità di concatenare gli operatori ternari, però, è sconsigliabile l'utilizzo in questa maniera dato che riduce di molto la leggibilità del codice.

Ti consigliamo anche