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 if ($eta >= 18) {
$messaggio = "Sei maggiorenne!";
}
else {
$messaggio = "Spiacenti, non hai i requisiti!";
}
?>
[/code]
$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:
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.
Non abusarne![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.$messaggio = ($eta >= 10) ? "Sei maggiorenne!" : "Spiacenti, non hai i requisiti!";
?>
[/code]
[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 = isset($_GET["colore"]) ? $_GET["colore"] : "pink";
?>
[/code]
$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.$mioColore = $_GET["colore"] ?: "pink";
?>
[/code]
⤽
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
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.
Riepilogoif
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.$messaggio = $haVinto
? "Congratulazioni! Hai appena vinto un sacco di soldi e premi!"
: "Spiacente, non hai vinto soldi o premi questa volta.";
?>
[/code]
⤽
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.
Ancora nessun commento