인프런 커뮤니티 질문&답변

lolola님의 프로필 이미지
lolola

작성한 질문수

PHP 7+ 프로그래밍: 객체지향

04 - 생성자와 소멸자, Final, 가시성 (Inheritance)

ternary operator 질문

작성

·

256

0

ternary operator 에 statement가 사용될수있나요
강좌 17:40초에

public static function getInstance()
{
 return self:$instance ?: self::$instance = new Self();
}
이런 코드가있는데 ternary operator사용한거를 풀어보면
return self:$instance ? self:$instance : self::$instance = new Self();

이렇게되잖아요? self::$instance는값이라 괜찮고
self::$instance = new Self(); 는 statement인데 저기에 들어갈수가있나요?

이렇게가 맞는거 아닌가요?
return self:$instance ? self:$instance : new Self();

답변 1

2

정상우님의 프로필 이미지
정상우
지식공유자

안녕하세요. PHP 언어의 느슨함에 또 한 번 놀라시게 되셨군요. 타 언어에서 return self::$instance = new self(); 와 같은 문장은 허용하지 않는 경우가 있습니다. 하지만 놀랍게도 PHP 에서는 사용할 수 있습니다! 이 경우 self::$instance 에 할당이 먼저 진행 된 이후 return 으로 인해 값이 반환됩니다.

lolola님의 프로필 이미지
lolola

작성한 질문수

질문하기