회사 코드를 보다가 ?? 이 있는 걸 봤다.
?만 붙은 경우는 보통 함수 return 시 nullable 또는 삼항 연산자에서 값이 false냐 true냐에 따라 분기해서 값을 정할 때 사용한다.
php에서의 ??의 명칭은 null coalescing operator라고 한다.
사용법은 다음과 같다.
$_GET['user']의 값이 null이 아닌 경우는 그대로 $_GET['user']의 값을 쓰고 null인 경우에는 'nobody' 문자열을 $username에 할당한다.
isset() 헬퍼 메서드와 삼항 연산자를 써서 $_GET['user']에 값이 있는 지 판단하고 있으면 $_GET['user'], 없으면 'nobody'.
즉, 값이 set 되었는지에 따라 :를 기준으로 전자를 할당하느냐 후자를 할당하느냐를 판단하는 삼항 연산자를 축약해주는 게 ?? 이다.
재미난 예시가 있는데 ??도 chaining이 가능하다. $_GET['user']에 값이 할당되어 있으면 $_GET['user'], null이면 $_POST['user']. $_POST['user']에도 값이 할당되어 있지 않다면 'nobody'이다.
출처
https://stackoverflow.com/questions/53610622/what-does-double-question-mark-operator-mean-in-php
공식 문서
https://www.php.net/manual/en/migration71.new-features.php#migration71.new-features.nullable-types
'PHP' 카테고리의 다른 글
PHP 기호 모음집 (0) | 2020.02.21 |
---|