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