인프런 커뮤니티 질문&답변
ternary operator 질문
작성
·
293
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 으로 인해 값이 반환됩니다.




