PHP의 Nullsafe 연산자: 조건부 개체 탐색 달성
PHP에서 다음과 같은 경우 개체 속성에 액세스하고 메서드를 호출하면 잠재적으로 null 포인터 예외가 발생할 수 있습니다. 개체가 null이거나 요청한 멤버가 없습니다. 이 문제를 해결하기 위해 PHP 8에 도입된 nullsafe 연산자(?-)를 사용하면 객체 속성과 메서드를 안전하게 탐색할 수 있습니다.
다음 명령문을 고려하세요.
echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
이 명령문은 $data 객체에는 getMyObject() 속성이 있고 null이 아닌 경우. 속성이 존재하고 null이 아닌 경우 해당 객체 내의 getName() 속성에 액세스합니다. 그러나 속성이 존재하지 않거나 null인 경우 명령문은 더 이상 진행되지 않습니다.
nullsafe 연산자를 사용하여 명령문을 다음과 같이 다시 작성할 수 있습니다.
echo $data->getMyObject()?->getName();
이 명령문에서 , $data가 null이거나 getMyObject() 속성이 없으면 연산자 체인이 종료되고 null이 반환됩니다. 이를 통해 누락된 속성이나 메서드 호출을 예외 없이 정상적으로 처리할 수 있습니다.
nullsafe 연산자는 개체 속성 및 메서드에 액세스하는 다음 연산자와 함께 작동합니다.
예를 들어 다음 코드는 아래:
$string = $data?->getObject()->getName() . " after";
는 다음과 동일합니다:
$string = (isset($data) && $data !== null) ? $data->getObject()->getName() . " after" : null;
$data가 null.
nullsafe 연산자를 활용하면 null 포인터 예외가 발생하지 않도록 하면서 더욱 깔끔하고 간결한 코드를 작성할 수 있습니다.
위 내용은 PHP의 Nullsafe 연산자(?-)는 어떻게 Null 포인터 예외를 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!