亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 1560 | 回復(fù): 1
打印 上一主題 下一主題

php5 學(xué)習(xí)記錄(1) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-27 15:54 |只看該作者 |倒序?yàn)g覽
php5 學(xué)習(xí)記錄(1)





一、php5主要的新特性

        1.public /private/protected訪問修飾符,針對(duì)對(duì)象中的方法和屬性。

        可以使用通用的面向?qū)ο笤L問修飾符來(lái)控制方法和屬性的訪問級(jí)別:

        class MyClass {

Php代碼
  1. 1.    private $id = 18;   
  2. 2.  
  3. 3.    public function getId() {   
  4. 4.        return $this->id;   
  5. 5.    }   
  6. 6.}  
  7.     private $id = 18;

  8.     public function getId() {
  9.         return $this->id;
  10.     }
  11. }  
復(fù)制代碼
2.統(tǒng)一的構(gòu)造函數(shù)名稱__construct().

        為避免構(gòu)造函數(shù)的名字和類的名字相同,現(xiàn)在用__construct()來(lái)聲明,從而讓你更加容易在類的分層中轉(zhuǎn)移類:



Php代碼
  1. 1.class MyClass {   
  2. 2.    function __construct() {   
  3. 3.        print 'Inside constructor';   
  4. 4.    }   
  5. 5.}  
  6. class MyClass {
  7.     function __construct() {
  8.         print 'Inside constructor';
  9.     }
  10. }
復(fù)制代碼
3.通過__destructor()定義對(duì)象的析構(gòu)方法。

        允許定義一個(gè)析構(gòu)函數(shù)來(lái)注銷一個(gè)對(duì)象:



Php代碼
  1. 1.class MyClass {   
  2. 2.    function __destruct() {   
  3. 3.        print ' Destroying object';   
  4. 4.    }   
  5. 5.}  
  6. class MyClass {
  7.     function __destruct() {
  8.         print ' Destroying object';
  9.     }
  10. }
復(fù)制代碼
4.接口。

        一個(gè)使用接口的類可以加載不止一個(gè)相關(guān)的接口。一個(gè)類只能繼承自另一個(gè)類,但是可以實(shí)現(xiàn)任意多個(gè)接口:



Php代碼
  1. 1.interface Display {   
  2. 2.    function display();   
  3. 3.}   
  4. 4.class Circle implements Display {   
  5. 5.    function dispaly() {   
  6. 6.        print ' Dispalying circle \n';   
  7. 7.    }   
  8. 8.}  
  9. interface Display {
  10.     function display();
  11. }
  12. class Circle implements Display {
  13.     function dispaly() {
  14.         print ' Dispalying circle \n';
  15.     }
  16. }
復(fù)制代碼
5.instanceof操作符。

        instanceof用來(lái)檢測(cè)一個(gè)給定的對(duì)象是否屬于(繼承于)某個(gè)類(class)、某個(gè)類的子類、某個(gè)接口(interface)。如果是則返回true。

       



Java代碼
  1. 1.if ($obj instanceof Circle) {   
  2. 2.    print '$obj is a Circle';   
  3. 3.}  
  4. if ($obj instanceof Circle) {
  5.     print '$obj is a Circle';
  6. }  
復(fù)制代碼
6.Final 標(biāo)記方法。

        Final關(guān)鍵字允許你用來(lái)標(biāo)識(shí)方法,使其不能被子類重載。



Php代碼
  1. 1.class MyClass {   
  2. 2.    final function getBaseClassName() {   
  3. 3.        return __CLASS__;   
  4. 4.    }   
  5. 5.}  
  6. class MyClass {
  7.     final function getBaseClassName() {
  8.         return __CLASS__;
  9.     }
  10. }  
復(fù)制代碼
7.Final標(biāo)記類。

        聲明一個(gè)類為final類型后,它將不能被繼承。下面的例子將報(bào)錯(cuò)。



Php代碼
  1. 1.final class FinalClass {   
  2. 2.}   
  3. 3.  
  4. 4.class BogusClass extends FinalClass {   
  5. 5.}  
  6. final class FinalClass {
  7. }

  8. class BogusClass extends FinalClass {
  9. }
復(fù)制代碼
8.強(qiáng)制復(fù)制對(duì)象

        為了克隆一個(gè)對(duì)象,你必須使用clone關(guān)鍵字。你可以再類中聲明一個(gè)__clone()方法,它將在克隆過程中被調(diào)用(調(diào)用在屬性和方法從原對(duì)象復(fù)制過來(lái)以后進(jìn)行):



Php代碼
  1. 1.class MyClas {   
  2. 2.    function __clone() {   
  3. 3.        print 'Object is being cloned';   
  4. 4.    }   
  5. 5.}   
  6. 6.$obj = new MyClass();   
  7. 7.$obj_copy = clone $obj;  
  8. class MyClas {
  9.     function __clone() {
  10.         print 'Object is being cloned';
  11.     }
  12. }
  13. $obj = new MyClass();
  14. $obj_copy = clone $obj;  
復(fù)制代碼
9.類中的常量。

        類定義中現(xiàn)在包含常量,而且可以用類來(lái)引用:



Php代碼
  1. 1.class MyClass {   
  2. 2.    const SUCCESS = "Success";   
  3. 3.    const FAILURE = "Failure";   
  4. 4.}   
  5. 5.print MyClass::SUCCESS;  
  6. class MyClass {
  7.     const SUCCESS = "Success";
  8.     const FAILURE = "Failure";
  9. }
  10. print MyClass::SUCCESS;
復(fù)制代碼
10.靜態(tài)方法。

        你現(xiàn)在可以定義靜態(tài)方法,不用實(shí)例化就能使用他們。靜態(tài)方法不能使用$this變量,因?yàn)樗鼈儾]有綁定到任何具體的對(duì)象:

        class MyClass {

Php代碼
  1. 1.    static function helloWorld() {   
  2. 2.        print 'Hello world';   
  3. 3.    }   
  4. 4.}   
  5. 5.MyClass::helloWorld();  
  6.     static function helloWorld() {
  7.         print 'Hello world';
  8.     }
  9. }
  10. MyClass::helloWorld();
復(fù)制代碼
11.靜態(tài)成員。

        類的定義現(xiàn)在包含靜態(tài)成員(屬性),可以通過類自身來(lái)訪問。通常用的最多的是單件(Singleton)模式:



Php代碼
  1. 1.class Singleton {   
  2. 2.    static private $instance = NULL;   
  3. 3.    private function __construct() {   
  4. 4.    }   
  5. 5.    static public function getInstance() {   
  6. 6.        if (sell::$instance == NULL) {   
  7. 7.            self::$instance = new Singleton();   
  8. 8.        }   
  9. 9.        return self::$instance;   
  10. 10.    }   
  11. 11.}  
  12. class Singleton {
  13.     static private $instance = NULL;
  14.     private function __construct() {
  15.     }
  16.     static public function getInstance() {
  17.         if (sell::$instance == NULL) {
  18.             self::$instance = new Singleton();
  19.         }
  20.         return self::$instance;
  21.     }
  22. }
復(fù)制代碼
12.抽象類。

        把類聲明為抽象類可以防止它被實(shí)例化。但是你可以繼承一個(gè)抽象類:



Php代碼
  1. 1.abstract class MyBaseClass {   
  2. 2.    function dispaly() {   
  3. 3.        print 'Default dispaly routine being called';   
  4. 4.    }   
  5. 5.}  
  6. abstract class MyBaseClass {
  7.     function dispaly() {
  8.         print 'Default dispaly routine being called';
  9.     }
  10. }  
復(fù)制代碼
13.抽象方法。

        把方法聲明為抽象的,以便在繼承的子類中再去定義。包含抽象方法的類本身必須是一個(gè)抽象類:



Php代碼
  1. 1.abstact class MyBaseClass {   
  2. 2.    abstract function dispaly();   
  3. 3.}  
  4. abstact class MyBaseClass {
  5.     abstract function dispaly();
  6. }
復(fù)制代碼
14.對(duì)象類型提示。

        函數(shù)聲明中可以對(duì)參數(shù)進(jìn)行對(duì)象類型提示。如果函數(shù)調(diào)用的時(shí)候沒有傳遞正確的對(duì)象類型,系統(tǒng)報(bào)錯(cuò):



Php代碼
  1. 1.function expectsMyClass(MyClass $obj) {   
  2. 2.}  
  3. function expectsMyClass(MyClass $obj) {
  4. }
復(fù)制代碼
15.支持連續(xù)引用方法返回的對(duì)象。

        在PHP4中,你不能直接引用方法返回的對(duì)象。你必須先賦值到一個(gè)中間變量,然后再使用該變量來(lái)引用。

        php 4:



Php代碼
  1. 1.$dummy = $obj->method();   
  2. 2.$dummy->method2();  
  3. $dummy = $obj->method();
  4. $dummy->method2();
復(fù)制代碼
php 5:



Php代碼
  1. 1.$obj->method()->method2();  
  2. $obj->method()->method2();
復(fù)制代碼
16.迭代。

        php5允許php類和php繼承類實(shí)現(xiàn)iterator接口。在實(shí)現(xiàn)迭代接口后,你可以用foreach()語(yǔ)言結(jié)構(gòu)遍歷一個(gè)類的實(shí)例:



Php代碼
  1. 1.$obj = new MyIteratorImplementaion();   
  2. 2.foreach ($obj as $value) {   
  3. 3.    print $value;   
  4. 4.}  
  5. $obj = new MyIteratorImplementaion();
  6. foreach ($obj as $value) {
  7.     print $value;
  8. }

  9.        
復(fù)制代碼
17.__autoload()方法。

        __autoload()函數(shù)在你需要使用一個(gè)未定義的類的時(shí)候自動(dòng)調(diào)用。通過調(diào)用這個(gè)函數(shù),腳本的引擎在php拋出類未定義的錯(cuò)誤之前提供最后一次加載類的機(jī)會(huì):



Php代碼
  1. 1.function __autoload($class_name) {   
  2. 2.    include_once($class_name . "php");   
  3. 3.}   
  4. 4.$obj = new MyClass();   
  5. 5.$obj2 = new MyClass2();  
  6. function __autoload($class_name) {
  7.     include_once($class_name . "php");
  8. }
  9. $obj = new MyClass();
  10. $obj2 = new MyClass2();  
復(fù)制代碼

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-12-27 15:54 |只看該作者
謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP