class A {
protected $bar = 'bar';
public function foo() {
echo $this->$bar;
}
}
$a = new A();
$a->foo();
這是令人難以置信的,我不介意這是行不通的。我來自C++和C#,所以它可能是我不瞭解PHP的東西。爲什麼這個簡單的代碼產量'未定義的變量:酒吧'
class A {
protected $bar = 'bar';
public function foo() {
echo $this->$bar;
}
}
$a = new A();
$a->foo();
這是令人難以置信的,我不介意這是行不通的。我來自C++和C#,所以它可能是我不瞭解PHP的東西。爲什麼這個簡單的代碼產量'未定義的變量:酒吧'
當您訪問會員時,您只需在this
之前的美元符號;即是這樣,而不是訪問它:
echo $this->bar;
爲什麼這個簡單的代碼的成品率「未定義的變量:欄」
因爲PHP試圖評估$this->
之前評估變量$bar
。由於沒有$bar
變量,因此會產生通知。
在$bar
前取下$
:
echo $this->bar;
我建議你閱讀的文檔的Variable Variables部分以及OOP Basics。
我很好奇,爲什麼動態語言暗示特定的順序的評價? –
它並不意味着評估的具體順序,更多的是變量變量。自從您注意到來自C++之後,我提到了它。這比PHP更靜態。儘管如此,我已經調整了我的答案。 –
試試這個
public function(){
echo $this->bar;
}
當使用$這則couln't變量$this->$variable
但$this->variable;
改變之前用符號
$
'回聲$此 - > $ bar;''echo $ this-> bar;' – asprinhttp://php.net/manual/en/language.oop5.basic.php – kunal