實(shí)例講解PHP5 新特性
雖然 PHP5 還沒(méi)有正式發(fā)布(開(kāi)發(fā)版本已經(jīng)提供下載),但我們現(xiàn)在就可以開(kāi)始體驗(yàn)一下新的版本 將要帶給我們的驚喜。在以下的介紹中,我們將重點(diǎn)講述PHP5 中的三大特色功能。這三大特點(diǎn)為:
* 新的對(duì)象模式 (New Object Mode)
* 異常處理 (Exceptions)
* 名稱(chēng)空間 (Namespace)
在開(kāi)始之前,要聲明兩點(diǎn):
* 文章中的例子為了說(shuō)明如何操作,有些部分使用了 PHP4 的表現(xiàn)手段,這僅僅是為了提高文章的可讀性。* 文章中描述的部分與 PHP5 的最終發(fā)布版可能會(huì)有一些出入
在 PHP5 沒(méi)有最終正式發(fā)布前,你可以隨時(shí)從 http://snaps.php.net 下載到最新的編譯版本來(lái)親自體驗(yàn)一下 PHP5 所帶給我們這些嶄新的功能。
新的對(duì)象模式
PHP5 中的對(duì)象已經(jīng)進(jìn)行了較系統(tǒng)、較全面的調(diào)整,現(xiàn)在的樣子可能看起來(lái)會(huì)有些類(lèi)似于 Java。本小節(jié)著重講述 PHP5 中新的對(duì)象模式,并舉了一些較簡(jiǎn)易的例子來(lái)說(shuō)明。就讓本節(jié)成為你的 PHP5 之旅的一個(gè)新起點(diǎn)吧。
* 構(gòu)造函數(shù)和析構(gòu)函數(shù)
* 對(duì)象的引用
* 對(duì)象的克隆
* 對(duì)象中的私有、公共及受保護(hù)模式
* 接口 (Interfaces)
* 抽象類(lèi)
* __call
* __set 和 __get
* 靜態(tài)成員
構(gòu)造函數(shù)和析構(gòu)函數(shù)
在 PHP4 中,當(dāng)函數(shù)與對(duì)象同名時(shí),這個(gè)函數(shù)將成為該對(duì)象的構(gòu)造函數(shù),并且在 PHP4 中沒(méi)有析構(gòu)函數(shù)的概念。
在 PHP5 中,構(gòu)造函數(shù)被統(tǒng)一命名為 __construct,并且引入了析構(gòu)函數(shù)的概念,被統(tǒng)一命名為 __destruct。
例一:構(gòu)造函數(shù)和析構(gòu)函數(shù)
x = $x; } function display() { print($this->x); } function __destruct() { print("bye bye"); } } $o1 = new foo(4); $o1->display(); ?> |
在上面的例子中,當(dāng)你終止調(diào)用 foo 類(lèi)的時(shí)候,其析構(gòu)函數(shù)將會(huì)被調(diào)用,上例中會(huì)輸出 “bye bye”。
對(duì)象的引用
眾所周知,在PHP4 中,傳遞變量給一個(gè)函數(shù)或方法,實(shí)際是把這個(gè)變量做了一次復(fù)制,也就意味著你傳給函數(shù)或方法的是這個(gè)變量的一個(gè)副本,除非你使用了引用符號(hào) “&” 來(lái)聲明是要做一個(gè)引用,而不是一個(gè) Copy。在 PHP5 中,對(duì)象總是以引用的形式存在的,對(duì)象中的賦值操作同樣也都是一個(gè)引用操作。
例二:對(duì)象的引用
x = $x; } function getX() { return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1; $o1->setX(5); if($o1->getX() == $o2->getX()) print("Oh my god!"); ?> |
對(duì)象的克隆
如上所述,當(dāng)一個(gè)對(duì)象始終以引用的形式來(lái)被調(diào)用時(shí),如果我想得到該對(duì)象的一個(gè)副本,該怎么辦呢?PHP5 提供了一個(gè)新的功能,就是對(duì)象的克隆,語(yǔ)法為 __clone。
例三:對(duì)象的克隆
x = $x; } function getX() { return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1->__clone(); $o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant"); ?> |
對(duì)象克隆的方法在其它很多應(yīng)用程序語(yǔ)言中都是存在的,所以你不必?fù)?dān)心它的穩(wěn)定性。
推薦文章
2024-11-28
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩(wěn)定
產(chǎn)品高可用性高并發(fā)貼心
項(xiàng)目群及時(shí)溝通專(zhuān)業(yè)
產(chǎn)品經(jīng)理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽(yù)堅(jiān)持
10年專(zhuān)注高端品質(zhì)開(kāi)發(fā)聯(lián)系我們
友情鏈接: