PHP 面向對象:類的屬性

在PHP5中,在屬性定義能夠不設置初值,或者賦予如下紅色類型的初值。php

PHP中簡單類型有8種,分別是:數組

  • 數值類型this

    1. boolean 布爾類型spa

    2. integer 整型code

    3. float 浮點型,也稱爲 double 雙精度浮點型orm

    4. string 字符串對象

  • 複合類型內存

    1. array 數組資源

    2. object 對象字符串

  • 特殊類型

    1. resource 資源

    2. 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
相關文章
相關標籤/搜索