細說php(七) 物件導向編程
一、類的聲明與對象初始化
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();?>
2.2 解構函式:
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再見!?>
2.3 魔術方法
魔術方法是系統給我們提供好的, 在不同時刻為完成某一功能而自動調用的方法, 不同的魔術方法有不同的調用時機
魔術方法以 __ 開頭
__construct(); // 建構函式
__destruct(); // 解構函式
__set();
__get();
__isset();
__unset();
__clone();
__call();
__sleep();
__weakup();
__toString()
__autoload();
http://www.bkjia.com/PHPjc/871200.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/871200.htmlTechArticle細說php(七) 物件導向編程 一、類的聲明與對象初始化 1.1 在類中聲明成員屬性時: 前面必須有修飾詞, 當不知道使用那個時, 就使用var, 如果...