Approfondimenti sull’operatore ternario

18 dicembre 2015

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.

Tutte le lezioni

1 ... 16 17 18 ... 52

Se vuoi aggiornamenti su Approfondimenti sull'operatore ternario inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Approfondimenti sull'operatore ternario

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy