2013-02-06 2 views
1

같은 클래스의 메서드 내부에서 클래스의 멤버 변수를 호출하려고합니다.일반 메서드에서 클래스의 호출 멤버 변수

직접 호출해도 작동하지 않으면 $ this를 사용해야합니다. 이것에 대한 이유가 있습니까? 수업에서 내가 부르는 변수가 그 변수에 속한다는 것을 깨닫지 못하는가?

답변

0

이유는 더 많거나 적은 그냥에 var에 속하는 "실현"하는 방법입니다. 동일한 범위의 멤버를 재정의하는 로컬 변수가 없으면 현재 범위에서 인스턴스 멤버를 자동으로 사용하는 Java에 익숙해 보입니다. PHP는 당신이 자유를 부여하지 않습니다

class x { 
    private $y = 'r'; 

    public function z() { 
     $y = 'q'; 
     echo "$this->y\n"; //r 
     echo "$y";   //q 
    } 
} 

자바를, 당신은 여전히 ​​클래스 멤버 이름이 로컬로 대체 되었기 때문에 r를 인쇄하려면 위의 예에서 this.y를 사용해야합니다. PHP의 멤버가 인 경우 항상이 void에 의해 오버라이드된다고 상상해보십시오.

+0

실제로 Java 배경에서 오는 것은 혼란 스러웠습니다. 고마워. – Aris

0

$를 this->는 클래스가이 PHP가 작동하는 방법이기 때문에이

관련 문제