Operatore null coalescing
Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 31 di 71.
L'operatore di coalescenza null (??) offre un modo pratico per usare un valore predefinito quando una variabile è null o non esiste. È particolarmente utile quando si lavora con dati che potrebbero mancare.
La sintassi colloca ?? tra la variabile da controllare e il valore di ripiego:
<?php
$username = null;
$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>PHP verifica se $username è null. Poiché lo è, l’operatore restituisce "Guest" invece. Se $username avesse un valore, verrebbe usato quel valore.
<?php
$username = "Alice";
$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>L'operatore di coalescenza dei null funziona anche quando una variabile non è stata definita affatto, senza generare un errore:
<?php
// $color no está definida en ninguna parte
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>Questo rende ?? più pulito rispetto all'uso di un operatore ternario con controlli isset(). È perfetto per fornire valori predefiniti sensati quando potrebbero mancare dei dati.
Sfida
FacileLeggi due valori dall'input: una stringa nickname e una stringa theme.
Usa l'operatore di coalescenza null per gestire i valori che potrebbero mancare:
- Crea una variabile
$userNicknameimpostata sunull. Poi usa l'operatore di coalescenza null per assegnare a$displayNicknameil valore di$userNicknamese esiste e non è null; altrimenti, usa il valore di inputnickname. - Crea una variabile
$userThemee assegnale il valore di inputtheme. Usa l'operatore di coalescenza null per assegnare a$selectedThemeil valore di$userThemese esiste e non è null; altrimenti, usadarkcome valore predefinito. - Usa l'operatore di coalescenza null direttamente con una variabile non definita
$language(non definirla) per assegnare a$displayLanguageil valore di$languagese esiste; altrimenti, usaEnglishcome valore predefinito.
Stampa ogni risultato su una nuova riga in questo ordine: $displayNickname, $selectedTheme, $displayLanguage.
Esempio:
Se gli input sono Player1 e light, l'output dovrebbe essere:
Player1
light
EnglishSe gli input sono GuestUser e blue, l'output dovrebbe essere:
GuestUser
blue
EnglishProvalo tu
<?php
// Leggi l'input
$nickname = trim(fgets(STDIN));
$theme = trim(fgets(STDIN));
// TODO: Scrivi il tuo codice qui sotto
// 1. Crea $userNickname impostata a null, poi usa ?? per assegnare $displayNickname
// 2. Crea $userTheme con l'input del tema, poi usa ?? per assegnare $selectedTheme (valore predefinito: il testo esatto delle istruzioni)
// 3. Usa ?? con $language non definita per assegnare $displayLanguage (valore predefinito: il testo esatto delle istruzioni)
// Visualizza i risultati (ciascuno su una nuova riga)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>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