Menu
Coddy logo textTech

Null Coalescing Operator

Coddy PHP 여정의 기초 섹션에 포함된 레슨. 71개 중 31번째.

null 병합 연산자(??)는 variablenull이거나 존재하지 않을 때 default 값을 사용하는 편리한 방법을 제공합니다. 이는 특히 누락될 수 있는 데이터를 다룰 때 유용합니다.

구문은 확인하려는 variable와 대체(fallback) 값 사이에 ??를 위치시킵니다:

<?php
$username = null;

$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>

PHP는 $usernamenull인지 확인합니다. null이므로 연산자는 대신 "Guest"를 반환합니다. $username에 값이 있었다면 해당 값이 사용되었을 것입니다.

<?php
$username = "Alice";

$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>

null 병합 연산자는 변수가 전혀 정의되지 않은 경우에도 오류를 발생시키지 않고 동작합니다:

<?php
// $color는 어디에도 정의되어 있지 않습니다
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>

이렇게 하면 isset() 검사와 함께 삼항 연산자를 사용하는 것보다 ??를 사용하는 것이 더 깔끔합니다. 데이터가 누락되었을 수 있는 경우 적절한 기본값을 제공하는 데 완벽합니다.

challenge icon

챌린지

쉬움

입력에서 두 값(문자열 nickname과 문자열 theme)을 읽어옵니다.

null 병합 연산자(null coalescing operator)를 사용하여 누락되었을 수 있는 값을 처리하세요:

  1. null로 설정된 변수 $userNickname을 만듭니다. 그런 다음 null 병합 연산자를 사용하여 $userNickname이 존재하고 null이 아닌 경우 그 값을 $displayNickname에 할당하고, 그렇지 않으면 nickname 입력값을 할당합니다.
  2. 변수 $userTheme을 만들고 theme 입력값을 할당합니다. null 병합 연산자를 사용하여 $userTheme이 존재하고 null이 아닌 경우 그 값을 $selectedTheme에 할당하고, 그렇지 않으면 기본값으로 dark를 사용합니다.
  3. 정의되지 않은 변수 $language(정의하지 마세요)에 null 병합 연산자를 직접 사용하여 $language가 존재하면 그 값을 $displayLanguage에 할당하고, 그렇지 않으면 기본값으로 English를 사용합니다.

각 결과를 $displayNickname, $selectedTheme, $displayLanguage 순서대로 새 줄에 출력하세요.

예시:

입력이 Player1light인 경우, 출력은 다음과 같아야 합니다:

Player1
light
English

입력이 GuestUserblue인 경우, 출력은 다음과 같아야 합니다:

GuestUser
blue
English

직접 해보기

<?php
// 입력 읽기
$nickname = trim(fgets(STDIN));
$theme = trim(fgets(STDIN));

// TODO: 아래에 코드를 작성하세요
// 1. $userNickname을 null로 생성한 다음, ??를 사용하여 $displayNickname에 할당하세요
// 2. 테마 입력으로 $userTheme을 생성한 다음, ??를 사용하여 $selectedTheme에 할당하세요 (기본값: 지침의 정확한 텍스트)
// 3. 정의되지 않은 $language와 함께 ??를 사용하여 $displayLanguage에 할당하세요 (기본값: 지침의 정확한 텍스트)

// 결과를 출력하세요 (각각 새 줄에)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 PHP 컴파일러