2010-03-01 9 views
1

$_SERVER['DOCUMENT_ROOT']을 속성으로 설정할 수없는 이유는 무엇입니까? 는 선언에서 초기화 할 때 다른 변수를 사용할 수 없습니다 예제 코드를

class foo 
{ 
private $path = $_SERVER['DOCUMENT_ROOT']; // generates error 
private $blah; 

public function __construct() 
{ 
//code 
} 

    public function setBla($bla) 
    { 
    $this->blah = $bla; 

    } 
} 
+0

오류를 제공 할 수 있습니까? – antyrat

+0

구문 분석 오류 : 구문 오류, 예기치 않은 T_VARIABLE, test.php의 4 행, – streetparade

답변

5

를 참조하십시오. 이것을 시도하십시오 :

class foo 
{ 
private $path; 
private $blah; 

public function __construct() 
{ 
$this->$path = $_SERVER['DOCUMENT_ROOT']; 
//code 
} 

    public function setBla($bla) 
    { 
    $this->blah = $bla; 

    } 
} 

한편, 개인 정보는 적절한 선택이며, 종종 보호가 바람직합니다.

+0

감사하지만 어쨌든 고맙겠습니다 .-) – streetparade

2

Class properties은 일정한 값으로 초기화 할 수 있습니다

[…] declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

그래서 당신은 생성자를 초기화 할 필요가 mathroc 말한 것처럼.

관련 문제