목차
Null Coalescing 연산자가하는 일
왜 Ternary 또는 또는 (||)보다 나은 이유
실제 사용 사례
경고와 언어 차이
결론
백엔드 개발 PHP 튜토리얼 Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식

Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식

Aug 01, 2025 am 07:45 AM
PHP if Operators

NULL COOLESCING 연산자 (??)는 NULL 또는 정의되지 않은 것을 처리 할 때 기본값을 할당하는 간결한 방법을 제공합니다. 1. 왼쪽 피연산자가 널 또는 정의되지 않은 경우 반환합니다. 그렇지 않으면 오른쪽 피연산자를 반환합니다. 2. 논리적 또는 (||) 연산자와 달리 ?? "", 0 또는 false와 같은 거짓 값을 보존하는 널 또는 정의되지 않은 낙하 만 트리거합니다. 3. 일반적인 사용 사례에는 기본 매개 변수, 구성 설정, API 응답 및 사용자 입력 처리가 포함됩니다. 4. 체인이 지원됩니다 : value1 ?? value2 ?? value3는 첫 번째 비 널 값을 반환합니다. 5. 언어 차이가 존재합니다 - C#은 무효 유형을 지원하고, PHP는 정의되지 않은 변수 오류를 억제하며, JavaScript는 NULL 및 정의되지 않은 것을 엄격하게 확인합니다. 6. 운영자 우선 순위는 && 또는 ||와 결합 할 때 괄호가 필요합니다. 사용 ?? 유효한 거짓말 값과 결 측값을 구별하여 더 안전하고 예측 가능한 코드로 이어져 ||보다 우수합니다. 의도적 인 경우 기본값 할당의 경우 NULL 또는 정의되지 않은 만 처리하려는 경우이 선명도는 코드 가독성과 안정성을 향상시킵니다.

Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식

?? Null Coalescing Operator로 알려진 연산자는 C#, PHP, JavaScript (ES2020 기준)와 같은 언어에서 null 값을 처리하는 깨끗하고 현대적인 방법입니다. 잠재적으로 null 또는 undefined 표현식을 처리 할 때는 기본값 할당을 단순화하여 기존 검사보다 코드를 더 읽기 쉽고 오류가 적게 발생합니다.

Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식

Null Coalescing 연산자가하는 일

?? 연산자는 왼쪽 피연산자가 null 또는 undefined 경우 반환합니다. 그렇지 않으면 오른쪽 피연산자를 반환합니다.

 문자열 이름 = userInput ?? "손님";

이 예에서 :

Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식
  • userInput null 아닌 경우 name userInput 의 값을 얻습니다.
  • userInput null 인 경우 name 기본값은 "Guest" 로 표시됩니다.

이것은 기능적으로 다음과 같습니다.

 문자열 이름 = userInput! = null? userInput : "게스트";

그러나 더 짧고 명확하며 변수를 반복하지 않습니다.

Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식

왜 Ternary 또는 또는 (||)보다 나은 이유

JavaScript의 일반적인 대안은 논리적 또는 ( || ) 연산자였습니다.

 const name = userInput || "손님";

그러나 주요 차이점이 있습니다. || null 또는 undefined 아니라 "" , 0 , false , NaN )의 거짓 가치에 빠지게됩니다.

 const userInput = "";
const name = userInput || "손님"; // "Guest"를 반환합니다 - 의도하지 않았을 수도 있습니다!

와 함께 ?? , null 또는 undefined 폴백 트리거 만 :

 const name = userInput ?? "손님"; // 반환 "" - 빈 문자열을 보존합니다

따라서 null 과 유효하지만 거짓 가치를 구별하려면 ?? 더 안전하고 정확합니다.

실제 사용 사례

여기에 일반적인 시나리오가 있습니다 ?? Shines :

  • 기본 함수 매개 변수 (지원하는 언어로)
  • 구성 폴백
  • API 응답 처리
  • 사용자 입력 소독

예를 들어 C#에서 :

 int timeout = config.timeout ?? 30;

또는 PHP에서 :

 $ teme = $ _session [ '테마'] ?? '빛';

당신은 또한 다중 체인을 할 수 있습니까 ?? 운영자 :

 String displayName = user.providedName ?? user.username ?? "익명의";

이것은 자연스럽게 읽습니다. "제공된 이름을 사용하십시오. 그렇지 않으면 사용자 이름을 사용하십시오. 그렇지 않으면 익명이라고 부릅니다."

경고와 언어 차이

  • C# , ?? 무효 값 유형 및 참조 유형과 함께 작동합니다.
  • PHP 에서는 왼쪽이 null 이면 오른쪽 피연산자를 반환합니다 (변수가 존재하지 않으면 경고가 발생하지 않으면 ??= ).
  • JavaScript 에서 ?? nullundefined 에만 적용됩니다. 0 , false"" 존중합니다.

또한 운영자 우선 순위가 중요합니다. ?? 대부분의 연산자보다 우선 순위가 낮으므로 && 또는 || 와 혼합 할 때 괄호로 감습니다. :

 const result = (value ?? defaultValue) && isactive;

결론

Null Coalescing Operator는 구문 설탕 일뿐 만 아니라 더 안전하고 의도적 인 null 값의 취급을 장려합니다. nullundefined 에만 초점을 맞추면 진실성 기반의 폴백의 함정을 피합니다. 일단 사용을 시작하면 ?? , 당신은 || 에 도달 할 것입니다 기본값 시나리오에서는 자주 덜합니다.

기본적으로 : 사용 ?? “이것이 누락 된 경우 사용”이라는 의미의 경우 -“이것이 거짓이라면”이 아닙니다. 코드 선명도에 큰 영향을 미치는 소규모 연산자입니다.

위 내용은 Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식 Null Coalescing Operator (??) : Null을 처리하는 현대적인 접근 방식 Aug 01, 2025 am 07:45 AM

whenUllCoalescingOperator (??)는 공유 hondlorUndefined.1.ItreturnsTheleftOperAndifitisnOtnullORundefined; 그렇지 않으면, itreturnsTherightOperand.2.unlikethelogicalor (||) 운영자,?

탈수 유형 저글링 :`==`과`===`의 중요한 차이점 탈수 유형 저글링 :`==`과`===`의 중요한 차이점 Jul 30, 2025 am 05:42 AM

== 대신 === 사용은 PHP 유형 변환 오류를 피하는 핵심입니다. == == 예상치 못한 결과를 초래하고 === 값과 유형을 동시에 비교하여 정확한 판단을 보장합니다. 예를 들어, 0 == "false"는 true이지만 0 === "false"는 false이므로 0 일 수있는 반환 값, 빈 문자열 또는 거짓을 처리 할 때는 논리적 오류를 방지하는 데 사용해야합니다.

'if-else'를 넘어서 : PHP의 대체 제어 구조 탐색 'if-else'를 넘어서 : PHP의 대체 제어 구조 탐색 Jul 30, 2025 am 02:03 AM

PHP의 대안 제어 구조는 곱슬 곱슬 괄호 대신 endif 및 endfor와 같은 콜론 및 키워드를 사용하여 혼합 HTML의 가독성을 향상시킬 수 있습니다. 1. if-elseif-else는 결장으로 시작하여 endif로 끝나서 조건 블록이 더 깨끗합니다. 2. Foreach는 템플릿 루프에서 식별하기가 더 쉽고 Endforeach는 루프의 끝을 명확하게 나타냅니다. 3. 거의 사용되지 않는 동안, 그들은 또한 지원됩니다. 이 구문은보기 파일에서 명백한 장점이 있습니다. 구문 오류 감소, 가독성 향상 및 HTML 태그 구조와 유사합니다. 그러나 혼란을 피하기 위해 Curly Braces는 순수한 PHP 파일에 계속 사용되어야합니다. 따라서 PHP와 HTML을 혼합하여 코드 유지 관리 가능성을 향상시키는 템플릿에서 대체 구문이 권장됩니다.

PHP 8의 '매치'표현 :`if-elseif` 체인에 대한 우수한 대안 PHP 8의 '매치'표현 :`if-elseif` 체인에 대한 우수한 대안 Aug 02, 2025 pm 02:47 PM

경기 표현은 PHP8에서보다 간결하고 안전한 대안을 제공합니다. IF-ELSEIF 및 스위치와 비교하여 느슨한 유형 비교의 오차를 피하기 위해 엄격한 비교 (===)를 자동으로 수행합니다. 2. 일치는 할당 및 함수 반환에 적합한 값을 직접 반환 할 수있는 표현식이며, 코드 단순성을 향상시킵니다. 3. 일치는 항상 엄격한 유형 확인을 사용하여 정수, 부울 및 문자열 사이의 예기치 않은 경기를 방지합니다. 4. 단일 암 다중 값 매칭 (예 : 0, false, '')을 지원하지만 복잡한 조건 (예 : 범위 판단)은 여전히 if-elseif가 필요합니다. 따라서 단일 변수의 정확한 값을 매핑 할 때는 일치를 먼저 사용해야하며 복잡한 로직은 if-elseif를 유지합니다.

조건부 논리 최적화 :`if` vs.`switch`의 성능 영향 조건부 논리 최적화 :`if` vs.`switch`의 성능 영향 Aug 01, 2025 am 07:18 AM

때로는 언어, 컴파일러 최적화 및 논리 구조에 따라 성능에 영향을 미칩니다. 1. 진술이 순서대로 실행되고 최악의 경우 복잡성이 O (n)이면 가장 가능성있는 조건을 먼저 배치해야합니다. 2. 스위치 명령문은 컴파일러에 의해 O (1) 조건이 연속 정수 인 경우 많은 분기 및 값이 상수를 컴파일 된 경우 O (1)의 점프 테이블로 최적화 될 수 있습니다. 3. 단일 변수가 여러 상수 정수와 비교되고 많은 분기와 스위치가 더 빠릅니다. 4. 범위 판단, 복잡한 조건, 비 integer 유형 또는 더 적은 지점이 포함될 때, 더 적합하거나 유사한 성능이있는 경우; 5. 다른 언어 (예 : C/C, Java, JavaScript, C#)는 스위치의 최적화 정도가 다르므로 실제 테스트와 함께 테스트해야합니다. SWI는 먼저 사용해야합니다

Ternary Operator를 사용하지 않을 때 : 가독성에 대한 가이드 Ternary Operator를 사용하지 않을 때 : 가독성에 대한 가이드 Jul 30, 2025 am 05:36 AM

피하기 외부인들의 regluceReadibility; useif-elsechainsinstead.2.don'tuseternariesforsideffects likefunctscalls; useif-elseforcontrolflow.3.skipternieswithcomplexpessionsinvollingLongStringsorlogic; breakthemintovariables.4.avoid

Refactoring 중첩`If` Hell : 깨끗한 조건부 논리를위한 전략 Refactoring 중첩`If` Hell : 깨끗한 조건부 논리를위한 전략 Jul 30, 2025 am 04:28 AM

useGuardClaUsestorEturnearlylylyly 및 flattenstructure.2. ExtractComplexConditionScriptiveFunctionSorvariblesforClarityandReus.3

`&&`vs.`및`: PHP의 미묘하지만 비판적 차이를 공개합니다. `&&`vs.`및`: PHP의 미묘하지만 비판적 차이를 공개합니다. Aug 01, 2025 am 06:04 AM

&& 및 PHP에서 동일한 논리적 기능이지만 우선 순위는 다르므로 실행 순서가 다릅니다. && 우선 순위는 및 우선 순위가 과제 연산자보다 낮습니다 =; 따라서 $ success = trueandfalse는 실제로 ($ success = true) 및 false로 구문 분석되므로 $ 성공은 여전히 사실입니다. 1. 사용 && || 조건부 판단에서; 2. 제어 흐름에서만 사용 및 또는 또는 또는 또는 또는 또는 또는 $ file = fopen () Ordie ()); 3. 복잡한 표현은 괄호를 사용하여 우선 순위를 명확히해야합니다. 4. 명시 적으로 의도하지 않는 한 혼합 및/또는 과제를 피하십시오.

See all articles