Null Coalescing Operator
Coddy PHP 여정의 기초 섹션에 포함된 레슨 — 71개 중 31번째.
null 병합 연산자 (??)는 변수가 null이거나 존재하지 않을 때 기본값을 사용하는 편리한 방법을 제공합니다. 이는 누락될 수 있는 데이터와 작업할 때 특히 유용합니다.
이 구문은 확인할 변수와 대체 값 사이에 ??를 배치합니다:
<?php
$username = null;
$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>PHP는 $username이 null인지 확인합니다. 그렇기 때문에 연산자는 대신 "Guest"를 반환합니다. 만약 $username에 값이 있었다면, 그 값이 사용되었을 것입니다.
<?php
$username = "Alice";
$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>null 병합 연산자는 변수가 전혀 정의되지 않은 경우에도 오류를 발생시키지 않고 작동합니다:
<?php
// $color is not defined anywhere
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>이는 isset() 검사를 사용한 삼항 연산자보다 ??를 더 깔끔하게 만듭니다. 데이터가 누락되었을 때 합리적인 기본값을 제공하는 데 완벽합니다.
챌린지
쉬움입력에서 두 값을 읽으세요: 문자열 nickname과 문자열 theme.
잠재적으로 누락된 값을 처리하기 위해 null 병합 연산자를 사용하세요:
$userNickname변수를null로 설정하세요. 그런 다음 null 병합 연산자를 사용하여$displayNickname에$userNickname의 값(존재하고 null이 아닌 경우)을 할당하거나, 그렇지 않으면nickname입력 값을 사용하세요.$userTheme변수를 생성하고theme입력 값을 할당하세요. null 병합 연산자를 사용하여$selectedTheme에$userTheme의 값(존재하고 null이 아닌 경우)을 할당하거나, 그렇지 않으면 기본값으로dark을 사용하세요.- 정의되지 않은 변수
$language(정의하지 마세요)를 직접 null 병합 연산자와 함께 사용하여$displayLanguage에$language의 값(존재하는 경우)을 할당하거나, 그렇지 않으면 기본값으로English을 사용하세요.
다음 순서로 각 결과를 새 줄에 출력하세요: $displayNickname, $selectedTheme, $displayLanguage.
예제:
입력값이 Player1과 light인 경우, 출력은 다음과 같아야 합니다:
Player1
light
English입력값이 GuestUser과 blue인 경우, 출력은 다음과 같아야 합니다:
GuestUser
blue
English치트 시트
null 병합 연산자(??)는 변수가 null이거나 존재하지 않을 때 기본값을 제공합니다.
구문:
$result = $variable ?? "default value";$variable이 null인 경우 기본값이 사용됩니다:
$username = null;
$displayName = $username ?? "Guest";
echo $displayName; // Guest$variable에 값이 있는 경우 그 값이 사용됩니다:
$username = "Alice";
$displayName = $username ?? "Guest";
echo $displayName; // Alice이 연산자는 오류를 발생시키지 않고 정의되지 않은 변수와도 작동합니다:
// $color is not defined
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue직접 해보기
<?php
// 입력 읽기
$nickname = trim(fgets(STDIN));
$theme = trim(fgets(STDIN));
// TODO: 아래에 코드를 작성하세요
// 1. $userNickname을 null로 설정한 후 ??를 사용하여 $displayNickname 할당
// 2. 테마 입력으로 $userTheme 생성 후 ??를 사용하여 $selectedTheme 할당 (기본값: 'dark')
// 3. 정의되지 않은 $language에 ??를 사용하여 $displayLanguage 할당 (기본값: 'English')
// 결과 출력 (각각 새 줄에)
echo $displayNickname . "\n";
echo $selectedTheme . "\n";
echo $displayLanguage . "\n";
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators