2010-04-22 4 views
2

안녕하세요. 나는 다음과 같은 코드를 가지고 :예기치 않은 PHP T_VARIABLE, 여기 조금 도움이

class user { 

    //URLs 
    private static $signInURL = $_SERVER['DOCUMENT_ROOT'].'/?page=signin'; 

    ... 
    ... 
    ... 

을 그리고 난

예상치 못한 T_VARIABLE 오류가 발생합니다.

누군가 내게 오류가 발생하지 않도록 해당 URL을 구성하는 방법을 알려주시겠습니까?

+0

이이 전체 코드입니다 :

private static $signInURL = ''; public static getSignInUrl() { if (User::$signInUrl == '') User::$signInUrl = $_SERVER....; return User::$signInUrl; } 

을 내가 사용하는 것이 좋습니다? – knittl

+0

아니요, 편집하지 않으므로 더 읽기 쉽습니다. –

답변

4

변수를 사용할 수 없으므로 메소드로 옮겨야합니다. 어쨌든 클래스 User가 $ _SERVER에 대해 알아야 할 나쁜 스타일입니다.

당신이 정말로, 정말로 당신이 사용할 수있는 방법을 원하는 경우 :

class User 
{ 
    private static $signInUrl = '/signin'; 

    public static getSignInUrl($base) 
    { 
    return $base . User::$signInUrl; 
    } 
} 
+0

예. 귀하의 제안은 정상적으로 작동하며 우아한 해결책이기도합니다. 당신의 도움을 주셔서 감사합니다 –

1

클래스 속성 값으로 변수를 넣을 수 없습니다. 시도해보십시오.

class a 
{ 
private $signInURL; 
public function __construct() 
{ 
    $this->signInURL = $_SERVER['DOCUMENT_ROOT'].'/?page=signin'; 
} 
} 
+1

$ this-> 거기에는 정적 속성이 있으므로 사용할 수 없습니다. 또한 이것은 의도 한 동작이 아닌 클래스가 생성 될 때마다 변수를 설정합니다 (변수가 다른 클래스의 인스턴스를 생성하지 않고 액세스 할 수 있습니다). – dbemerlin

관련 문제