国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
1.封裝:" >1.封裝:
?
5.關(guān)於封裝中的幾個常用魔術(shù)方法__set(),__get(),__isset(),__unset()" >5.關(guān)於封裝中的幾個常用魔術(shù)方法__set(),__get(),__isset(),__unset()
首頁 php教程 php手冊 php物件導(dǎo)向之二-封裝性

php物件導(dǎo)向之二-封裝性

Dec 05, 2016 pm 01:26 PM

1.封裝:

具體概念講出來,感覺也不知道說的是什麼.其實就是

在類別的成員屬性和成員方法前面,加上類似public protected private 的修飾符

目的:盡量地隱藏物件的內(nèi)部細(xì)節(jié),達(dá)到存取控制.[不是拒絕存取]. (對外形成一個屏障,只保留有限的對外介面與外部發(fā)生聯(lián)繫.)

2.封裝的原則:

物件對外的部分不能夠隨意存取物件的內(nèi)部資料(成員屬性和成員方法),從而有效地避免了外部錯誤對它的"交叉感染",使軟體錯誤能夠局部化,大大減小查錯和排錯的難度.

3.修飾符public?protected private

public :公有的,預(yù)設(shè)的 ?protected ?:受保護的 private :私有的

4.訪問範(fàn)圍


是否可以存取對應(yīng)的屬性和方法

?

? ? ? ? ?public ? ? ? protected ? ? ? private
類的外部 ? ? ? ? ? √ ? ? ? ? ? ?× ? ? ? ? ? ?×
類的內(nèi)部 ? ? ? ? ? √ ? ? ? ? ? √ ? ? ? ? ? √

?

?

?

?

?

①類的外部只有公有屬性和方法才可以訪問.

②其他屬性和方法可以在類別的內(nèi)部聲明公有方法間接地進行存取.

③在類別的內(nèi)部可以存取公有,私有,受保護的屬性和方法.

④在類別的內(nèi)部不可以存取私有和受保護的屬性和方法.

如果成員方法沒有任何存取控制符,預(yù)設(shè)是public的,在任何地方都可以存取.(在物件外部就可以公有方法作為存取介面,間接地存取物件的內(nèi)部細(xì)節(jié)).

5.關(guān)於封裝中的幾個常用魔術(shù)方法__set(),__get(),__isset(),__unset()

引出這幾個魔術(shù)方法,首先要說一下,構(gòu)造方法__construct()沒有加關(guān)鍵字修飾,是公有方法(構(gòu)造方法不要設(shè)定成私有的權(quán)限)用戶可以使用構(gòu)造方法在實例化物件後為私有屬性賦初始值.

但是,我們已經(jīng)實例化物件,在程式運作過程中想要對私有屬性進行賦值操作.有兩種方法

(1).在類別的內(nèi)部設(shè)定公有方法,專門來提供賦值,取值介面

?

class Person{
    private $name="紫藤";
    
    public function __construct(){
        echo $this->name;
    }    
    
    //賦值方法
     public function setvalue($name){
           $this->name=$name;          
     }
      public function getvalue(){
           echo $this->name;       
     }
}

//實例化
$mod = new Person();

?

結(jié)果是: ?紫藤

$mod->setvalue('寶強');
$mod->getvalue();

結(jié)果是:寶強

(2)魔術(shù)方法__set(),__get(),__isset(),__unset()

如果像上面的每次都要去設(shè)定公有方法,很繁瑣.在php5.1.0之後的版本中,預(yù)定義了__set(),__get(),用來完成對所有非公有屬性都能取得和複製的操作.

__set($propertyName,$propertyValue)

有兩個參數(shù), 屬性名稱 ?和? 屬性值,在給非公有屬性賦值時,會自動調(diào)用此方法(就是說在類別中必須聲明__set()) ? () ?)

__get($propertyName)在取得非公有屬性的值時,會自動呼叫此方法.

?

檢測非公有屬性是否存在__isset(),刪除一個物件的非公有屬性__unset().為了防止使用者主動呼叫這兩個方法,要使用private關(guān)鍵字封裝在物件中.

__isset($propertyName)檢測非公有屬性是否存.(這是一個輔助檢測函數(shù),沒有檢測函數(shù)),還要在外部調(diào)用isset()函數(shù)時,才會自動調(diào)用此方法.

__unset($propertyName)刪除一個物件的非公有屬性_,要在外部呼叫unset()函數(shù)時,才會自動呼叫此方法.

?

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)