Menu
Coddy logo textTech

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.

challenge icon

Sfida

Facile

Leggi due valori dall'input: una stringa nickname e una stringa theme.

Usa l'operatore di coalescenza null per gestire i valori che potrebbero mancare:

  1. Crea una variabile $userNickname impostata su null. Poi usa l'operatore di coalescenza null per assegnare a $displayNickname il valore di $userNickname se esiste e non è null; altrimenti, usa il valore di input nickname.
  2. Crea una variabile $userTheme e assegnale il valore di input theme. Usa l'operatore di coalescenza null per assegnare a $selectedTheme il valore di $userTheme se esiste e non è null; altrimenti, usa dark come valore predefinito.
  3. Usa l'operatore di coalescenza null direttamente con una variabile non definita $language (non definirla) per assegnare a $displayLanguage il valore di $language se esiste; altrimenti, usa English come 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
English

Se gli input sono GuestUser e blue, l'output dovrebbe essere:

GuestUser
blue
English

Provalo 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";
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore PHP online