国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php面向對象詳解

xingpingz / 2533人閱讀

摘要:前言自從進入版本以來,開始全面地支持面向對象編程。好了,進入正題,面向對象的三大特性分別是封裝性,繼承性以及多態性,使用面向對象開發,讓我們的程序可維護以及擴展性大大提高。

前言

自從php進入5.0版本以來,PHP開始全面地支持面向對象編程。嗯,誰說php很low。我們專注web開發好不好;誰說php代碼爛,自己水平不行寫的代碼當然爛了;誰說php框架不優雅的,你用過laravel嗎。好了,進入正題,面向對象的三大特性分別是封裝性,繼承性以及多態性,使用面向對象開發,讓我們的程序可維護以及擴展性大大提高。

基本知識

:具有相同屬性或方法的一類集合體。比如雪佛蘭汽車是一個雪佛蘭汽車類,奔馳汽車是一個奔馳汽車類,寶馬汽車是一個寶馬汽車類,而這三個類又是汽車大類的子類。
對象:類的一個具體實現,比如寶馬Q5就是寶馬汽車類的一個具體實現。對象地使用是放在內存中的。一下讓我們了解一下對象在內存中的分配


使用面向對象,就是靈活地使用以上兩個知識點。讓我們來創建和使用類與對象

a="opt";//將opt對象中的a屬性賦值為opt
    $opt->funA();//打印出"I am function A"
?>

修飾符:在定義類與類中的屬性時,我們可以使用如下三個修飾符,若不加,則默認為public
public:權限最大
protected:權限范圍在其本身與其子類
private:權限范圍僅在其本身
構造函數與析構函數:在我們對類實例化創建對象時,往往需要對對象進行初始化,這時,我們就需要在類中定義一個構造方法。當我們使用完對象時,就需要釋放對象,以減少內存的使用,這時我們就需要使用析構方法。
在php中我們使用__construct()方法與__destruct(),如下代碼

a=$a;
            $this->b=$b;
            echo "我是構造函數";
        }
        public function __destruct(){
            echo "我是析構函數";
        }
    }
?>
封裝性

當我們開發一些重要的程序模塊時,常常不希望別人能輕易訪問這些程序模塊的數據,因此需要對這些數據進行封裝。這時我們要進行數據的訪問控制,常常使用private關鍵字來對這些屬性與方法進行封裝。
如下

這樣,當我們創建對象時就不能調用私有的屬性與方法。但是我們可以通過使用魔術方法來對這些私有屬性與方法進行訪問。
__set()與__get()的使用
通過__set()方法我們可以通過對象直接設置成員屬性值
通過__get()方法我們可以通過對象直接獲取成員屬性值

$oldValue=$newvalue;
        }
        public function __get($newvalue){
            return $newvalue;
        }
    }
    $opt= new setClass();
    $opt->a="sss";//直接設置私有屬性值
    echo $opt->b;//直接讀取私有屬性值
?>

__isset()與__unset()的使用
通過__isset()直接查看對象中私有屬性是否存在
通過__unset()直接刪除對象中的私有屬性

$b);
    var_dump(unset($opt->$b));
?>
繼承性

當我們編寫多個類時,常常多個類具有相同的屬性與方法,為了簡化代碼我們引入了繼承的概念,子類可以繼承父類的一些屬性與方法,減少了冗余代碼地編寫。


如何編寫繼承類
我們使用關鍵字extends來編寫子類

    

如上,childClass是parentClass的子類,php僅支持單繼承,即一個子類只有一個父類,但父類可以有多個子類。

重寫父類方法
當父類中的方法不能滿足子類的使用時我們可以重寫父類方法。但當我們又想在子類使用父類的方法時,我們可以使用如下語法:parent::方法名

幾個重要的關鍵字

3.1 final

final可以修飾類與方法,不能修飾成員屬性;
被final修飾的類不能繼承,而用final修飾的方法在子類中不能被重寫

3.2 static

static可以修飾成員屬性與成員方法,不能修飾類;
使用static修飾的成員與方法可以通過類直接使用,使用如下語法:類名::$屬性名或方法名();
在類中使用時通過如下語法:self::$屬性名或方法名.

3.3 const

在類中聲明常量使用const,而不是使用define();
比如 const TT=90
當使用常量時直接使用如下語法self::常量名

3.4 instanceof

使用該關鍵字可以檢測某個實例是否是某個類的實例。

3.5 trait

php只能進行單繼承,但它同時提供了另類方式來進行代碼復用,解決單繼承問題。
如下
```
  
```
抽象技術

用abstract關鍵字修飾的方法與類稱為抽象方法或抽象類。
聲明抽象類與抽象方法

抽象技術為子類的聲明提供了一種規范,限制了類的實例化(抽象類不能實例化)。

接口技術

接口是一種特殊的抽象類,接口中只能聲明抽象類與常量
聲明接口使用interface,實現接口使用implements,修飾符只能是默認的public;
一個子類可以繼承多個接口,同時繼承一個父類

多態

在php中多態地實現需要一個類通過多個子類地繼承實現,如果一個類的方法在多個子類中重寫并實現不同的功能,我們稱之為多態。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26171.html

相關文章

  • 區塊鏈開發中使用的最流行的編程語言

    摘要:我們目前正處于一個新興的區塊鏈開發行業中。,一種在以太坊開發人員中流行的新的簡單編程語言,因為它是用于開發以太坊智能合約的語言。它是全球至少萬開發人員使用的世界上最流行的編程語言之一。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 我們目前正處于一個新興的區塊鏈開發行業中。區塊鏈技術處于初期階段,然而這種顛覆性技術已經成功地風靡全球,并且最近經歷了一場與眾不同的繁榮。由于許多...

    2shou 評論0 收藏0
  • PHP 自 5.2 到 5.6 中新增的功能詳解

    摘要:本文將會介紹自起,直至中增加的新特征。棄用的功能以下幾個功能被棄用,若在配置文件中啟用,則會在運行時發出警告。該類的完整限定名是其中第一個反斜杠表示全局命名空間。目的在于模仿的不對,目的是為了讓發布應用程序更加方便。 截至目前(2014.2), PHP 的最新穩定版本是 PHP5.5, 但有差不多一半的用戶仍在使用已經不在維護 [注] 的 PHP5.2, 其余的一半用戶在使用 PHP5...

    番茄西紅柿 評論0 收藏0
  • SegmentFault 技術周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評論0 收藏0
  • SegmentFault 技術周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評論0 收藏0
  • SegmentFault 技術周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評論0 收藏0

發表評論

0條評論

xingpingz

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<