2013-04-30 5 views
1

클래스 내부에서 공용 변수를 참조하려고합니다.클래스의 PHP 참조 변수

class Settings{ 
    public $CompanyName = "MyWebsite"; // company name 
    public $PageTitle = "$this->CompanyName - big website"; // E.g. My Big Website 
} 

그러나 이것은 구문 분석 오류 다시 제공합니다

Parse error: parse error 

이 일을 올바른 방법은 무엇입니까?

+1

를' "$ this-> 회사 명 - 큰 큰 웹 사이트 " – Dave

+5

@Dave - 회원을 초기화 할 수 없으므로 구문 분석 오류가 발생하지 않습니다. 정적 변수가 아닌 변수. – nickb

+0

그래, 난 그냥 명백한 오류를 수정하지 않았어 나머지도 봐 tbh – Dave

답변

2

정의시 다른 변수와 함께 변수를 설정할 수 없습니다.

class Settings{ 
    public $CompanyName = "MyWebsite"; // company name 
    public $PageTitle; // E.g. My Big Website 

    public function __construct(){ 
     $this->PageTitle = $this->CompanyName." - big website"; 
    } 
} 
3

당신이 특성에 $이 사용할 수 없지만 방법에서 __construct()에서 PAGETITLE을 정의하려고; 그것을 위해 __construct를 사용하여

class Settings{ 
    public $CompanyName = "MyWebsite"; // company name 
    public $PageTitle; 

    function __construct(){ 
     $this->PageTitle = "$this->CompanyName - big Website"; 
    } 
} 

$settings = new Settings(); 
echo $settings->PageTitle; 

출력 : MyWebsite - 큰 웹 사이트

1

http://php.net/manual/en/language.oop5.properties.php :

This declaration may include an initialization, but this initialization must be a constant value

가 유효하지 않습니다.

public $var1 = 'hello ' . 'world'; 

하지만은 다음과 같습니다 :

이 유효하지 않습니다

public $var1 = myConstant; 
public $params = array(); 

내가 그것을 이런 식으로 할 수 있습니다 :

class Settings{ 
    public $CompanyName; 
    public $PageTitle; // E.g. My Big Website 

    public function __construct(){ 
     $this->$CompanyName = 'mywebsite'; 
     $this->PageTitle = $this->CompanyName." - big website"; 
    } 
}