Probabilmente avete familiarità con le istruzioni if di PHP. È molto simile alla sua controparte in molti altri linguaggi di programmazione e rappresenta uno dei concetti fondamentali della programmazione. L’istruzione if è facile da capire e facile da padroneggiare. Questo è probabilmente quello che siete abituati a leggere:

[code lang=”php”] <?php
if ($eta >= 18) {
$messaggio = "Sei maggiorenne!";
}
else {
$messaggio = "Spiacenti, non hai i requisiti!";
}
?>
[/code]
Ma c’è un modo per costruire questo concetto e aumentare un po’ le prestazioni di $eta nel processo. Per fare questo si usa l’operatore ternario, che sarebbe una notazione abbreviata per le istruzioni if​​.

L'operatore ternario
Composto da tre parti, l’operatore ternario utilizza tre espressioni separate da un punto interrogativo e due punti. Il punto interrogativo separa la prima l’espressione di test e può essere pensata come una domanda: “È vero?“. I due punti separano due valori: il primo sarà scelto se la domanda di test risulta vera, e la seconda, se l’espressione di test risulta falsa. Osservate:
[code lang=”php”] <?php
$messaggio = ($eta >= 10) ? "Sei maggiorenne!" : "Spiacenti, non hai i requisiti!";
?>
[/code]
Uno dei frammenti preferiti per usare l’operatore ternario è quello di verificare se il valore di una varibile è impostata e, se non lo è, impostarla con un valore predefinito.
[code lang=”php”] <?php
$mioColore = isset($_GET["colore"]) ? $_GET["colore"] : "pink";
?>
[/code]
Se il parametro colore è stato passato nello script dall’URL, il suo valore viene assegnato a $mioColore; altrimenti, il valore di default da assegnare sarà “pink”.
Dalla versione 5.3 di PHP è possibile abbreviare le dichiarazioni ternarie ancora di più, escludendo l’espressione centrale. Se l’espressione di test restituisce vero in un contesto booleano, viene restituito il suo valore; altrimenti, viene restituito il valore alternativo contenuto nell’espressione di destra.
[code lang=”php”] <?php
$mioColore = $_GET["colore"] ?: "pink";
?>
[/code]
Utilizzando l’operatore ternario correttamente, il codice può risultare più pulito; abusando, l’operatore ternario può rendere le cose un bel pasticcio. Non sacrificate la leggibilità o la manutenibilità del codice per aggiungere un po’ di svasatura.
Non abusarne!
Prima di usare l’operatore ternario, si dovrebbe considerare la complessità della situazione a portata di mano. Evitare le nidificazione o l’impilamento di operazioni, anche se sei a tuo agio nel contesto, in quanto ciò può portare a codici molto confusi e risultati poco intuitivi. È preferibile usare le istruzioni if per situazioni complesse. Soprattutto cercare di mantenere il codice pulito e di facile comprensione, per essere gentile con la persona che lo legge.
Inoltre non è inaudito dividere l’operatore ternario in più righe. Come molte altre cose nella programmazione, ci sono molte variazioni sull’uso spazi vuoti per migliorare la leggibilità del codice.
[code lang=”php”] <?php
$messaggio = $haVinto
? "Congratulazioni! Hai appena vinto un sacco di soldi e premi!"
: "Spiacente, non hai vinto soldi o premi questa volta.";
?>
[/code]
Come sempre, la leggibilità dovrebbe essere la chiave.
Riepilogo
L’operatore ternario può sembrare un po’ strano in un primo momento, ma richiede poco sforzo per padroneggiarlo ed è molto facile da spiegare a chi potrebbe fare la manutenzione del codice in futuro. Con un po’ di pratica sarete in grado di dare al vostro codice PHP una dose extra di rendimento.