一、類的聲明與對象初始化
1.1 在類中聲明成員屬性時: 前面必須有修飾詞, 當不知道使用那個時, 就使用var, 如果知道使用那一個修飾關鍵字, 就不使用var了
var $color;
var $name = "zhangsan"
1.2 一個文件只保存一個類, 文件名中包含類名, 如:類名.class.php
person.class.php
1.3 使用new關鍵字來創建對象, 創建了一個對象就在內存中分配一個空間 $對象引用 = new 類名;
$person = new Person
name; } } $p1 = new Person; // Java: Person person = new Person; $p1->name = "lisi"; // Java: person.name = "lisi"; $p1->say(); // Java: person.say(); ?>1.4 對象在內存中的分配
a. 棧內存: 存放局部變量
b. 堆內存: 存放對象
c. 共享區: 存放靜態變量
d. 代碼段: 存放方法等
二、構造函數和析構函數
2.1 構造函數:
a. 構造方法是對象創建完成之後, 第一個自動調用的方法
b. 在PHP4中, 和類同名的方法就是構造方法
c. 在PHP5中, 構造方法選擇使用魔術方法 __construct() , 所有類中聲明構造方法都使用這個名稱
優點: 在改變類名時構造方法不用改變
d. 構造方法的作用: 為成員屬性初始化
name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名子:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。
"; } } $p1=new Person("zhangsan", 20, "女"); $p2=new Person("lisi", 25); $p3=new Person("wangwu"); $p1->say(); $p2->say(); $p3->say(); ?>
a. 析構函數是指當對象被釋放之前最後一個自動調用的方法
b. 和Java一樣, PHP也使用垃圾回收器釋放資源, 只不過PHP調用後馬上回收, 而Java不是.
c. 析構函數的作用: 關閉一些資源, 做一些清理工作, 使用魔術方法 __destruct()
name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名子:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。
"; } function __destruct(){ echo $this->name."再見!
"; } } $p1=new Person("zhangsan", 20, "女"); $p1->say(); $p1 = null; // 我的名子:zhangsan,我的年齡:20,我的性別:女。 // zhangsan再見! ?>
魔術方法是系統給我們提供好的, 在不同時刻為完成某一功能而自動調用的方法, 不同的魔術方法有不同的調用時機
魔術方法以 __ 開頭
__construct(); // 構造函數
__destruct(); // 析構函數
__set();
__get();
__isset();
__unset();
__clone();
__call();
__sleep();
__weakup();
__toString()
__autoload();