>백엔드 개발 >PHP 튜토리얼 >PHP의 Nullsafe 연산자가 중첩 속성 액세스를 단순화할 수 있습니까?

PHP의 Nullsafe 연산자가 중첩 속성 액세스를 단순화할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-14 04:58:09306검색

Can PHP's Nullsafe Operator Simplify Nested Property Access?

PHP의 Nullsafe 연산자 소개

nullsafe 연산자(?->)를 사용하면 개발자는 객체 속성에 안전하게 액세스하고 명시적인 null 검사가 필요 없는 메서드입니다. 이는 특히 복잡한 객체 계층 구조에서 코드를 단순화하고 가독성을 향상시킵니다.

쿼리

nullsafe 연산자를 사용하여 다음 명령문을 다시 작성할 수 있습니까?

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';

답변

From PHP 8부터는 null 병합 연산자(?)와 함께 nullsafe 연산자를 활용하여 원하는 동작을 달성할 수 있습니다.

해결책

echo $data->getMyObject()?->getName() ?? '';

? -> 연산자는 null 값이 발견되면 연산자 체인을 끊고 효과적으로 null을 반환하고 표현식을 종료합니다. 객체 속성을 검사하거나 메서드를 호출하는 연산자는

  • 배열 액세스([]), 속성 액세스(->), nullsafe 속성 액세스(?->)를 포함하여 체인의 일부로 간주됩니다. , 정적 속성 액세스(::), 메서드 호출(->), nullsafe 메서드 호출(?->) 및 정적 메서드 호출 (::)

또한 체인의 후속 연산자가 체인의 일부로 간주되지 않는 경우(예: 아래 예의 연결 연산자) 단락되지 않습니다.

$string = $data?->getObject()->getName() . " after";

이 경우 $data가 null이면 코드 결과는 다음과 같습니다.

$string = null . " after";

위 내용은 PHP의 Nullsafe 연산자가 중첩 속성 액세스를 단순화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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