Null Coalescing Operator
Coddy PHP 여정의 기초 섹션에 포함된 레슨. 71개 중 31번째.
null 병합 연산자(??)는 variable이 null이거나 존재하지 않을 때 default 값을 사용하는 편리한 방법을 제공합니다. 이는 특히 누락될 수 있는 데이터를 다룰 때 유용합니다.
구문은 확인하려는 variable와 대체(fallback) 값 사이에 ??를 위치시킵니다:
<?php
$username = null;
$displayName = $username ?? "Guest";
echo $displayName; // Guest
?>PHP는 $username이 null인지 확인합니다. null이므로 연산자는 대신 "Guest"를 반환합니다. $username에 값이 있었다면 해당 값이 사용되었을 것입니다.
<?php
$username = "Alice";
$displayName = $username ?? "Guest";
echo $displayName; // Alice
?>null 병합 연산자는 변수가 전혀 정의되지 않은 경우에도 오류를 발생시키지 않고 동작합니다:
<?php
// $color는 어디에도 정의되어 있지 않습니다
$selectedColor = $color ?? "blue";
echo $selectedColor; // blue
?>이렇게 하면 isset() 검사와 함께 삼항 연산자를 사용하는 것보다 ??를 사용하는 것이 더 깔끔합니다. 데이터가 누락되었을 수 있는 경우 적절한 기본값을 제공하는 데 완벽합니다.
챌린지
쉬움입력에서 두 값(문자열 nickname과 문자열 theme)을 읽어옵니다.
null 병합 연산자(null coalescing operator)를 사용하여 누락되었을 수 있는 값을 처리하세요:
null로 설정된 변수$userNickname을 만듭니다. 그런 다음 null 병합 연산자를 사용하여$userNickname이 존재하고 null이 아닌 경우 그 값을$displayNickname에 할당하고, 그렇지 않으면nickname입력값을 할당합니다.- 변수
$userTheme을 만들고theme입력값을 할당합니다. null 병합 연산자를 사용하여$userTheme이 존재하고 null이 아닌 경우 그 값을$selectedTheme에 할당하고, 그렇지 않으면 기본값으로dark를 사용합니다. - 정의되지 않은 변수
$language(정의하지 마세요)에 null 병합 연산자를 직접 사용하여$language가 존재하면 그 값을$displayLanguage에 할당하고, 그렇지 않으면 기본값으로English를 사용합니다.
각 결과를 $displayNickname, $selectedTheme, $displayLanguage 순서대로 새 줄에 출력하세요.
예시:
입력이 Player1과 light인 경우, 출력은 다음과 같아야 합니다:
Player1
light
English입력이 GuestUser와 blue인 경우, 출력은 다음과 같아야 합니다:
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";
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
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직접 연습해 보세요: 온라인 PHP 컴파일러