해결책
echo $person->middleName ?? 'Person does not have a middle name';
이것이 어떻게 작동하는지 더 명확하게하기 위해 if 문에서 이것이 어떻게 보일지를 보여줍니다.
if($person->middleName ?? false) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
설명
존재 여부를 확인하는 전통적인 PHP 방법은 다음과 같습니다.
if(isset($person->middleName)) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
또는 더 구체적인 수업 방법 :
if(property_exists($person, 'middleName')) {
echo $person->middleName;
} else {
echo 'Person does not have a middle name';
}
이것들은 긴 형식의 진술에서는 괜찮지 만 삼항 진술에서는 불필요하게 번거 롭습니다.
isset($person->middleName) ? echo $person->middleName : echo 'Person does not have a middle name';
다음과 같이 삼항 연산자를 사용하여이를 달성 할 수도 있습니다.
echo $person->middleName ?: 'Person does not have a middle name';
그러나 ... 값이 존재하지 않으면 (설정되지 않은 경우) 값이 높아지고 E_NOTICE
실용적이지 않습니다. 값이 있으면 null
예외가 발생하지 않습니다.
따라서 구조에 대한 삼항 연산자는 이것을 깔끔한 작은 대답으로 만듭니다.
echo $person->middleName ?? 'Person does not have a middle name';