• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

ternary operator 질문

21.10.28 14:55 작성 조회수 206

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 으로 인해 값이 반환됩니다.