在PHP5中,在屬性定義可以不設置初值,或者賦予以下紅色類型的初值。 PHP中簡單類型有8種,分別是: •數值類型 1.boolean 布爾類型 2.integer 整型 3.float 浮點型,也稱為 double 雙精度浮點型 4.string 字符串 •復合類型 1.array 數組 2.object 對象 •特殊類型 1.resource 資源 2.NULL 01 <? 02 class A{ 03 } 04 05 class Person{ 06 private $name; //定義屬性未賦值。 07 private $name1 = NULL; //定義屬性空值 ,與未賦值一樣。 08 private $married = true; //用布爾型為屬性賦值。 09 private $grade = 0; //用整形數值為屬性賦值 10 private $eyesight = 0.1; //用浮點型數字為屬性賦值 11 private $nationality = "China"; //用字符串為屬性賦值 12 private $arr = array("foo" => "bar", 12 => true); // 用數組為屬性賦值 13 //private $a = new A(); //PHP5不允許,創建對象類型賦值給屬性 14 //private $res = opendir("abc"); // PHP5不允許使用資源類型 15 //private $g = $this->grade; //不允許用前面定義的屬性為新屬性賦值。 16 17 } 18 $a = new Person(); 19 ?> 在上面例子中,第13行,嘗試創建對象並將值賦予屬性$a 會報錯。 第14行,建立資源並復制給$res會出現錯誤。 第15行,使用上面定義的屬性為新屬性賦值也會產生錯誤。 在Java中,可以作13行和15行這樣的操作。 PHP5中定義屬性的默認值,被限制到最簡單的方式。其它的操作,交給構造方法操作,後面內容中將講解構造方法。 變量與引用變量 普通變量間的傳值方法,就是值的賦值。比如數組。 1 <? 2 $arr = array("foo" => "bar", 12 => true); 3 $a = $arr; 4 5 $arr[foo] = "new"; 6 print_r($arr); 7 echo '<br />'; 8 print_r($a); 9 ?> 程序輸出: view sourceprint? 1 Array ( [foo] => new [12] => 1 ) 2 Array ( [foo] => bar [12] => 1 ) 而指向對象的變量,是一個引用變量。在這個變量裡面存儲的是所指向對象的內存地址。引用變量傳值時,傳遞的是這個對象的指向。而非復制這個對象。 屬性的擴充 $this 指當前對象。 $this-> 調用當前對象的屬性或者方法。 在類中使用$this-> 調用一個未定義的屬性時,PHP5會自動創建一個屬性供使用。 這個被創建的屬性,默認的方法權限是public。 01 <? 02 class A { 03 public $name = "Gonn"; 04 05 public function __construct() { 06 $this -> age = "24"; 07 } 08 } 09 10 $p = new A(); 11 12 echo $p->name; 13 echo '<br />'; 14 echo $p->age; 15 ?> 程序輸出: 1 Gonn 2 24 屬性 age 被創建了。