2013-01-06 4 views
3

클래스 접두사를 사용하지 않고 PHP 클래스의 정적 변수에 액세스 할 수있는 방법이 있습니까?PHP에서 클래스 이름없이 클래스 내의 정적 변수에 액세스하려면 어떻게합니까?

예 :

이해
class A { 

    protected static $x = "blahblah"; 

    public static function p() { 

     print(A::$x); // <= Is there no way to omit A:: ??? 

    } 

} 

는, 그 시점 $의 X에서 그 초기화되지 않은 지역 변수가 될 수 있지만, 그것은 많은 의미가 이러한 경우에 해당 세트// 대답 선언 할 수 있도록 할 것 해석자는 $ x를 이전에 선언 된 멤버로 결정해야합니다. 사방에 클래스 접두어를 입력하는 것은 주요 실패 IMHO입니다.

+1

자기 :: $의 x는 답변 –

답변

5

사용하는 메소드가 동일한 클래스에 있으면 self :: 또는 static ::을 사용할 수 있습니다.

예 :

class A { 

    protected static $x = "blahblah"; 

    public static function p() { 

     print(self::$x); 

    } 

} 
+0

감사합니다,하지만 내 포인트는 접두사를 매번 입력 건너 뛰도록했다 클래스 내에서 작동합니다 ... :) – Szidor

+0

음, 자기 :: 그리고 정적 : 클래스의 이름을 변경 한 경우 클래스 내부의 변수에 대한 모든 참조를 리팩토링하지 않아도됩니다.하지만 클래스를 지정하지 않고 정적 변수를 참조하는 방법은 없다고 생각합니다. 클래스 이름 또는 self :: 또는 static : :). – Dragory

관련 문제