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

  免費注冊 查看新帖 |

Chinaunix

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

php5 學習記錄(1) [復制鏈接]

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





一、php5主要的新特性

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

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

        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. }  
復制代碼
2.統(tǒng)一的構(gòu)造函數(shù)名稱__construct().

        為避免構(gòu)造函數(shù)的名字和類的名字相同,現(xiàn)在用__construct()來聲明,從而讓你更加容易在類的分層中轉(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. }
復制代碼
3.通過__destructor()定義對象的析構(gòu)方法。

        允許定義一個析構(gòu)函數(shù)來注銷一個對象:



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. }
復制代碼
4.接口。

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



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. }
復制代碼
5.instanceof操作符。

        instanceof用來檢測一個給定的對象是否屬于(繼承于)某個類(class)、某個類的子類、某個接口(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. }  
復制代碼
6.Final 標記方法。

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



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. }  
復制代碼
7.Final標記類。

        聲明一個類為final類型后,它將不能被繼承。下面的例子將報錯。



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. }
復制代碼
8.強制復制對象

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



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;  
復制代碼
9.類中的常量。

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



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;
復制代碼
10.靜態(tài)方法。

        你現(xiàn)在可以定義靜態(tài)方法,不用實例化就能使用他們。靜態(tài)方法不能使用$this變量,因為它們并沒有綁定到任何具體的對象:

        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();
復制代碼
11.靜態(tài)成員。

        類的定義現(xiàn)在包含靜態(tà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. }
復制代碼
12.抽象類。

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



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. }  
復制代碼
13.抽象方法。

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



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

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



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

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

        php 4:



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



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

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



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.        
復制代碼
17.__autoload()方法。

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



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();  
復制代碼

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

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP