프로필카테고리질문하기
로그인 계정 만들기

PHP $this self 차이

03 개월 전

PHP에서 $thisself 의 차이점은 무엇인가요?

class Greeter { function greet() { echo 'hello'; } function __construct() { $this->greet(); // hello self::greet(); // hello } } new Greeter();
답변하기 의견 추가
의견 (0)
더 많은 의견 보기

답글 (1)

03 개월 전
차이점

$this 는 현재 인스턴스를 가리키고 self 는 명령이 실행되는 위치의 클래스 자체를 가리켜요.

상속된 클래스를 만들면 더 분명하게 볼 수 있어요.

class X { function greet() { echo 'Greetings from X'; } function __construct() { $this->greet(); // $obj->greet(); echo ', '; self::greet(); // X::greet(); } } class Y extends X { function greet() { echo 'Greetings from Y'; } } $obj = new Y();

결과: Greetings From Y, Greetings From X

왜냐하면 $this 는 현재 인스턴스 ($obj) 를 가리키고, self 는 명령이 실행되는 위치 __construct 의 클래스 자체 (X) 를 가리키기 때문이에요.

$this를 사용해야 하는 경우

별다른 이유가 없는 경우에는 항상 $this를 사용하세요.

self를 사용해야 하는 경우

현재 클래스를 가리켜야만 하는 경우 (static 등) 에는 self를 사용하세요.

의견 추가
의견 (0)
더 많은 의견 보기