2010-01-19 8 views
5

오랫동안 'this'키워드를 사용하고 있습니다. 그러나 누군가 나에게 그것을 설명하라고 요구할 때, 나는 그것을 설명하는 방법에 대해 혼란 스럽다. 클래스의 메서드에서이 클래스를 사용하여 동일한 클래스의 모든 변수와 메서드에 액세스 할 수 있음을 알고 있습니다.가장 간단하고 쉬운 방법으로 'this'키워드를 설명하는 방법은 무엇입니까?

class MyClass{ 

     function MyMethod1(){ 
     echo "Hello World"; 
     } 

     function MyMethod2(){ 
     $this->MyMethod1(); 
     } 

    } 

우리가 초기화 할 필요가 없습니다 만 클래스 또는 다른 어떤 내에서 사용할 수있는 클래스의 객체 그것입니다. 설명하는 방법?

감사

+1

합리적인 시간이 지나면 가장 많은 표를 얻은 대답이 받아 들여집니다. – NAVEED

+0

여기에 멋진 기사가 있습니다 ** [PHP에서 키워드 "this"사용하기] (http://www.webdevelopmentbits.com/using-this-in-php) ** – rahul

답변

13

클래스는 객체의 몰드입니다. 클래스는 객체가 어떻게 보이는지 (변수)와 기능 (기능)을 지정합니다.

클래스를 인스턴스화하는 경우 : 객체를 만듭니다. 클래스를 만들면 "this"를 사용하여 개체를 참조 할 수 있습니다. 이것이 "this"를 설정할 수없는 이유입니다. 왜냐하면 그것은 객체와 관련이 있기 때문입니다. 특수 읽기 전용 변수입니다.

+5

개체 자체를 참조하는 데 사용할 수있는 특수 읽기 전용 변수입니다. 맞습니까? – NAVEED

+0

네, 맞습니다. 클래스 내에서 – Pindatjuh

5

this 클래스의 현재 개체 인스턴스를 참조합니다.

this은 클래스의 메서드에 전달되는 암시 적 매개 변수입니다.이 메서드는 메서드에 적용되며 모든 개체 멤버에 액세스 할 수 있습니다.

+1

아마도 기본 언어가 아닐지 모르지만, 기술적으로 가장 정확한 답. –

2

짧은 : $this 당신이 개체 변수 (및 방법) 편집에 액세스 할 수 있습니다 : 클래스 내에서 : 편집 2 : (그러나 클래스의 정적 메서드에서) : D

+3

:) – NAVEED

+0

수정;) thx 메이트 – dfens

+0

하지만 클래스의 정적 메소드가 아닙니다. :) – NAVEED

2

처럼 그들의 이름에서 알 수 있듯이 인스턴스 메서드는 인스턴스 인 클래스에서 작동합니다. 그들은 어느 것을 조작해야하는지 어떻게 알 수 있습니까? 이것이 this 매개 변수입니다.

인스턴스 메서드를 호출 할 때 실제로는 보이지 않는 추가 매개 변수 인 : 호출 할 개체가 전달됩니다. 예를 들어, 당신이있을 때 :

class Basket { 
    public function a() { 
    $this-> ...; 
    // ... 
    } 
    // ... 
} 

을 당신은 당신이 실제로 Basket::a($some_basket) 같은 것을 호출하고있는 장면 뒤에, $some_basket->a()를 호출합니다. 지금 a()은 어느 Basket을 알고 있는지 알고 있습니다. 이 특수 매개 변수는 this이 참조하는 것 : 현재 처리중인 개체입니다.

1

클래스는 개체의 템플릿 또는 '죽어'입니다.

고전적인 '자전거'예를 사용하십시오. 많은 huffy 자전거가 밖에 있습니다. 그러나 우리는 하나의 자전거를 만들었으며 'this'라는 키워드를 사용하여 'this'자전거를 나타낼 수 있습니다.

더 기술적 인면에서 클래스는 인스턴스화 될 객체의 템플릿입니다. 런타임에 객체가 인스턴스화되거나 인스턴스 자체가 생성 된 후에는 'this'키워드를 내부적으로 사용하여 해당 메소드를 실행하는 인스턴스를 참조 할 수 있습니다.

2

여러 사람들이 비슷한 용어로 설명했지만 객체 지향 프로그래밍에 익숙하지 않은 사람들과 이야기 할 때 클래스 정의는 집과 마찬가지로 청사진이라고 설명하고 "this"는 그 순간에 당신이 작업하고있는 실제 집. 정확히 똑같아 보이는 다른 집들도있을 수 있지만 이것은 특정 대상 (집)입니다.

관련 문제