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