日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

簡(jiǎn)單介紹PHP面向?qū)ο?/span>

 好亂非常亂 2016-09-25

面向?qū)ο缶幊痰娜攸c(diǎn): 封裝性,繼承性(PHP支持單繼承),多態(tài)性
PHP的一個(gè)類必須在一段代碼段中,即一個(gè)“”

  1. class PhpClass{  

  2.     public $name;  

  3.     public function toString(){  

  4.         return 'PhpClass';  

  5.     }  


定義成員方法:  [關(guān)鍵詞] function 方法名(){...}

訪問成員方法:  對(duì)象名->成員方法

定義成員變量:  [關(guān)鍵字] 成員變量名

訪問成員變量:  對(duì)象名->成員變量

關(guān)鍵字可以使用 public、private、protected、static和final中的任意一個(gè)

定義類常量:      const 常量名
訪問類常量:      類名::常量名

  1.     public $name;  

  2.     const PI = 3.1415926;   // 不能有修飾詞  

  3.     public function toString(){  

  4.         return 'PhpClass';  

  5.     }  

  6.     public function printPI(){  

  7.         echo PhpClass::PI.'
    '
    ;  // 直接通過類名訪問  

  8.     }  

  9.     public function printName(){  

  10.         echo $this->name;   // 注意此處的寫法  

  11.     }  

  12. }  

  13. $lycClass = new PhpClass();  

  14. echo $lycClass::PI.'
    '
    // 通過對(duì)象訪問  

  15. echo PhpClass::PI.'
    '
    ;  

  16. echo $lycClass->toString().'
    '
    ;  

  17. $lycClass->name = 'Lyc';  

  18. $lycClass->printName(); 

構(gòu)造方法和析構(gòu)方法:

構(gòu)造方法: 不寫會(huì)默認(rèn)一個(gè)

void __construct([mixed args [,...]]) 下劃線為兩個(gè)

析構(gòu)方法: 

void __destruct(void) 下劃線為兩個(gè)

php使用垃圾回收機(jī)制,不用 unset 函數(shù)析構(gòu)方法也會(huì)自動(dòng)被調(diào)用

  1. class PhpClass{  

  2.     public $name;  

  3.     //public function __construct(){} PHP不支持 C++、java 形式上的方法重載  

  4.   

  5.     public function __construct($name){  

  6.         $this->name = $name;  

  7.     }  

  8.     public function __destruct(){  

  9.         echo '析構(gòu)一下...';  

  10.     }  

  11. }  

  12. $lycClass = new PhpClass('lyc');  

  13. echo $lycClass->name;  

  14. //unset($lycClass); 不寫也會(huì)調(diào)用 __destruct()

繼承和多態(tài)

繼承: 在PHP中子類可以繼承父類的所有public和protected修飾的成員變量和方法,包括構(gòu)造方法。

聲明繼承的格式: 

class subClass extendes superClass{

......

}

多態(tài):(覆蓋和重載兩種,覆蓋和c++、java中重寫相同)

重載概念和c++、java中的重載概念相同,但實(shí)現(xiàn)方式不同,重載實(shí)例:

  1. class PhpClass{  

  2.     public $nae;  

  3.     // PHP中有很多以兩個(gè)下劃線開頭的方法,被稱為魔術(shù)方法***********************  

  4.     /* __call()方法的作用是: 當(dāng)程序試圖調(diào)用不存在或不可見的成員方法時(shí) 

  5.      * PHP會(huì)先調(diào)用__call()方法來存儲(chǔ)方法名及其參數(shù)。__call()方法包含 

  6.      * 兩個(gè)參數(shù),即方法名和方法參數(shù)。其中,方法參數(shù)是以數(shù)組形式存在的  */  

  7.     function __call($name$arguments){  

  8.         // 通過count($arguments)獲得參數(shù)個(gè)數(shù)  

  9.         $argNum = count($arguments);  

  10.         //echo $argNum.'***************
    ';
      

  11.         if($name == 'right'){   // 一下方法調(diào)用中的 $this-> 不可省略  

  12.             switch($argNum){  

  13.                 case 0:  

  14.                     $this->right0();  

  15.                     break;  

  16.                 case 1:  

  17.                     $this->right1($arguments[0]);  

  18.                     break;  

  19.                 case 2:  

  20.                     $this->right2($arguments[0],$arguments[1]);  

  21.                     break;  

  22.                 default:  

  23.                     echo '參數(shù)可能多了,我不干了...
    '
    ;  

  24.             }  

  25.         }else if($name == 'left'){  

  26.             switch($argNum){  

  27.                 case 1:  

  28.                     $this->left1($arguments[0]);  

  29.                     break;  

  30.                 case 2:  

  31.                     $this->left2($arguments[0],$arguments[1]);  

  32.                     break;  

  33.                 default:  

  34.                     echo '參數(shù)不對(duì),我不干了...
    '
    ;  

  35.             }  

  36.         }else{  

  37.             echo '什么也不做...';  

  38.         }  

  39.     }  

  40.     //幾種實(shí)現(xiàn)重載的方法,方法名不相同  

  41.     public function right0(){  

  42.         echo 'right0
    '
    ;  

  43.     }  

  44.     public function right1($arg){  

  45.         echo 'right1 '.$arg.'
    '
    ;  

  46.     }  

  47.     public function right2($arg1,$arg2){  

  48.         echo 'right1 '.$arg1.' '.$arg2.'
    '
    ;  

  49.     }  

  50.     public function left0(){  

  51.         echo 'left0
    '
    ;  

  52.     }  

  53.     public function left1($arg){  

  54.         echo 'left1 '.$arg.'
    '
    ;  

  55.     }  

  56.     public function left2($arg1,$arg2){  

  57.         echo 'left1 '.$arg1.' '.$arg2.'
    '
    ;  

  58.     }  

  59. }  

  60. $lyc = new PhpClass();  

  61. $lyc->left();           // 此處實(shí)現(xiàn)重載  

  62. $lyc->left('LEFT');  

  63. $lyc->left('LEFT','LYC');  

  64. $lyc->right();  

  65. $lyc->right('RIGHT');  

  66. $lyc->right(123,'LYC');  

  67. $lyc->right(123,'lyc','right'); 


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多