類別的變數成員叫做“屬性”,或稱為“欄位”、“特徵”,在本文檔統一稱為“屬性”。屬性聲明是由關鍵字 public,protected 或 private 開頭,然後跟著一個普通的變數宣告來組成。屬性中的變數可以初始化,但是初始化的值必須是常數,這裡的常數是指 PHP 腳本在編譯階段時就可以得到其值,而不依賴執行時的資訊才能求值。
Note:
為了向後相容 PHP 4,PHP 5 聲明屬性依然可以直接使用關鍵字 var 來取代(或附加於)public,protected 或 private。但是已不再需要 var 了。在 PHP 5.0 到 5.1.3,var 會被認為是廢棄的,而且拋出 E_STRICT 警告,但是 5.1.3 之後就不再認為是廢棄,也不會拋出警告。
如果直接使用 var 聲明屬性,而沒有用 public,protected 或 private 之一,PHP 5 會視為 public。
在類別的成員方法裡面,可以用 ->(物件運算子):$this->property(其中 property 是該屬性名稱)這種方式來存取非靜態屬性。靜態屬性則是用 ::(雙冒號):self::$property 來存取。
Example #1 屬性聲明
class SimpleClass
{
//錯誤的屬性聲明
public $var1 = 'hello '.'world';
EOD;
public $var3 = 1+2;
public $var4 = self::myStaticMethod();
public $var5 = $myVar;
public $var5 = $myVar;
EOD;
}
跟 heredocs 不同,nowdocs 可在任何靜態資料上下文中使用,包括屬性聲明。
Example #2 例:使用 nowdoc 初始化屬性
//PHP5.3.0起
public $var =
hello world
5.3.0 新增的。