如何訪問PHP對象的屬性?訪問PHP對象屬性的語法是什麼?
此外,訪問對象的屬性與 $this->$property1
與$this->property1
之間有什麼區別?
當我嘗試使用$this->$property1
我得到以下錯誤:
'PHP: Cannot access empty property'.
PHP的documentation的對象屬性有一個評論,其中提到這一點,但意見並沒有真正深入講解。
如何訪問PHP對象的屬性?訪問PHP對象屬性的語法是什麼?
此外,訪問對象的屬性與 $this->$property1
與$this->property1
之間有什麼區別?
當我嘗試使用$this->$property1
我得到以下錯誤:
'PHP: Cannot access empty property'.
PHP的documentation的對象屬性有一個評論,其中提到這一點,但意見並沒有真正深入講解。
$property1
//特定變量$this->property1
//特定屬性類上一般使用是沒有"$"
否則你調用一個名爲$property1
變量,可以採取任何價值。
例子:
class X {
public $property1 = 'Value 1';
public $property2 = 'Value 2';
}
$property1 = 'property2'; //Name of attribute 2
$x_object = new X();
echo $x_object->property1; //Return 'Value 1'
echo $x_object->$property1; //Return 'Value 2'
$this->property1
表示:
使用該對象並獲取綁定到該對象
$this->$property1
變量property1表示:
評估字符串$ property1和使用結果獲得了$命名變量property1綁定到此對象的結果
另一個SO用戶可以將PHP手冊頁變成答案。恭喜! – hakre
這是諷刺嗎? –
@hakra鏈接到手冊通常不被認爲是答案,因爲這些鏈接往往會改變......但是,我同意引用和/或鏈接到源將是一個更好的答案變種 –
property1
是一個字符串,而$property1
是一個變量。因此,當訪問$this->$property1
PHP查找名爲$property1
的變量的內容,並且因爲它(可能)不存在,所以它是空的,所以這就是爲什麼你會得到Cannot access empty property
錯誤。
就拿本手冊頁面,而不是和尋找「變量屬性名稱」部分:http://php.net/manual/en/language.variables.variable.php(第一部分也許對你很有意思)(在你的答案中鏈接的頁面上找到,你應該更仔細地閱讀文檔) – hakre
你失望與OOP?是的,你認識我 –