L’operatore ternario
Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 30 di 71.
Quando hai un semplice if-else che assegna solo un valore in base a una condizione, PHP offre un modo più breve per scriverlo: l’operatore ternario.
La sintassi usa ? e : per creare una condizionale compatta su una sola riga:
<?php
$age = 20;
// Usando if-else
if ($age >= 18) {
$status = "adult";
} else {
$status = "minor";
}
// La stessa cosa con l'operatore ternario
$status = $age >= 18 ? "adult" : "minor";
echo $status; // adult
?>La struttura è: condition ? value_if_true : value_if_false.
PHP valuta prima la condizione. Se è vera, l’espressione restituisce il valore dopo ?. Se è falsa, restituisce il valore dopo :.
<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Fail
$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Welcome back!
?>L'operatore ternario è perfetto per le semplici assegnazioni alternative. Per una logica più complessa con più condizioni, attieniti alle istruzioni if-elseif-else per una maggiore leggibilità.
Sfida
FacileLeggi due numeri interi dall'input: un score e un passingScore.
Usa l'operatore ternario per determinare il risultato in base a quanto segue:
- Se
scoreè maggiore o uguale apassingScore, il risultato dovrebbe esserePassed - Altrimenti, il risultato dovrebbe essere
Failed
Stampa il risultato sulla prima riga.
Poi, leggi un numero intero quantity dall'input. Usa l'operatore ternario per determinare il messaggio di spedizione:
- Se
quantityè maggiore di 10, il messaggio dovrebbe essereFree shipping - Altrimenti, il messaggio dovrebbe essere
Standard shipping
Stampa il messaggio di spedizione sulla seconda riga.
Esempio:
Se gli input sono 75, 60 e 15, l'output dovrebbe essere:
Passed
Free shippingSe gli input sono 45, 50 e 5, l'output dovrebbe essere:
Failed
Standard shippingProvalo tu
<?php
// Leggi l'input
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));
// TODO: Scrivi il tuo codice qui sotto
// Usa l'operatore ternario per determinare se il punteggio è sufficiente o insufficiente
// Usa l'operatore ternario per determinare il messaggio di spedizione
// Mostra i risultati
echo $result . "\n";
echo $shippingMessage;
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confrontoUguaglianza e identitàOperatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica semplice2Variabili e tipi di dati
NumeriStringhe e virgoletteValori booleaniConvenzioni di denominazioneRiepilogo - Inizializzazione delle variabiliVariabili vuoteConcatenazione di stringheAcquisire input dall'utenteConvertire in tipi diversi5Logica condizionale
Istruzione ifIf - elseL’operatore ternarioOperatore null coalescingIstruzione switchRiepilogo - Prendere decisioni3Operatori di base
Operatori aritmeticiOperatore moduloOperatore di elevamento a potenzaAssegnazione compostaIncremento/decrementoPrecedenza degli operatoriRiepilogo - calcoli sempliciOperatori per stringheEsercitati da solo: Compilatore PHP online