강의

멘토링

로드맵

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

lolola님의 프로필 이미지
lolola

작성한 질문수

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

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

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

lolola님의 프로필 이미지
lolola

작성한 질문수

질문하기