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

資訊專欄INFORMATION COLUMN

php 修飾符和魔術(shù)方法 (基礎(chǔ))

luodongseu / 1540人閱讀

摘要:中有三種訪問(wèn)修飾符,它們可以分別用在類(lèi)的屬性和方法上類(lèi)的屬性和方法統(tǒng)稱為類(lèi)的成員,用來(lái)修飾類(lèi)成員的訪問(wèn)權(quán)限公共的默認(rèn)受保護(hù)的私有的常用魔術(shù)方法,,,,,,,,,在下面的例子中展示一下用法調(diào)用方法調(diào)用方法可以將所有變量都能

PHP中有三種訪問(wèn)修飾符,它們可以分別用在類(lèi)的屬性和方法上(類(lèi)的屬性和方法統(tǒng)稱為類(lèi)的成員),用來(lái)修飾類(lèi)成員的訪問(wèn)權(quán)限

public(公共的、默認(rèn))

protected(受保護(hù)的)

private(私有的)

php 常用魔術(shù)方法:

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __invoke(), __clone() 

在下面的例子中展示一下用法

class Test
{
    private $a = "a";
    protected $b = "b";
    public $c = "c";

    public function __set($name, $value)
    {
        // TODO: Implement __set() method.
    }

    public function __get($name)
    {
        // TODO: Implement __get() method.
    }

    public function __construct()
    {
        echo "begin construct!";
    }

    public function __destruct()
    {
        echo "begin destruct!";
    }

    public function __invoke()
    {
        echo "try to invoke!";
        // TODO: Implement __invoke() method.
    }

    public function __isset($name)
    {
        // TODO: Implement __isset() method.
    }

    private function get1()
    {
        var_dump("private get a :" . $this->a . "
");
        var_dump("private get b :" . $this->b . "
");
        var_dump("private get c :" . $this->c . "
");
    }

    protected function get2()
    {
        var_dump("protected get a :" . $this->a . "
");
        var_dump("protected get b :" . $this->b . "
");
        var_dump("protected get c :" . $this->c . "
");
    }

    public function get3()
    {
        var_dump("public get a :" . $this->a . "
");
        var_dump("public get b :" . $this->b . "
");
        var_dump("public get c :" . $this->c . "
");
    }

}

調(diào)用Test方法
$t = new Test();
$t(123); // 調(diào)用invoke

$t->get3();
// public 方法可以將所有變量都能被調(diào)用到
// public get a :a
// public get b :b
// public get c :c

// __set 和 __get 魔術(shù)方法使用,如果不定義,那么對(duì)于 private 屬性 $a 將無(wú)法被操作
//$t->a = "123";
//echo $t->a;

//$t->get1(); // private 方法外部不可被調(diào)用
//$t->get2(); // protected 方法外部不可被調(diào)用


class Test2 extends Test
{
//    private $b = ""; // 報(bào)錯(cuò),子類(lèi)繼承修飾符等級(jí)不能低于父類(lèi)
    protected $b;// ok 或  public $b
    private function get1()
    {
        var_dump("Test2 private get a :" . $this->a . "
"); // 報(bào)錯(cuò),私有變量不能被繼承
        var_dump("Test2 private get b :" . $this->b . "
");
        var_dump("Test2 private get c :" . $this->c . "
");
    }

    public function get2() // 繼承時(shí)修改了 訪問(wèn)權(quán)限
    {
//        var_dump("get a :" . $this->a . "
");// 報(bào)錯(cuò),私有變量不能被繼承
        var_dump("Test2 public get b :" . $this->b . "
");
        var_dump("Test2 public get c :" . $this->c . "
");
    }

    public function get3()
    {
//        var_dump("get a :" . $this->a . "
");// 報(bào)錯(cuò),私有變量不能被繼承
        var_dump("Test2 public get b :" . $this->b . "
");
        var_dump("Test2 public get c :" . $this->c . "
");
    }
}

$t2 = new Test2();
$t2->get3();
$t2->get2(); // protected方法外部無(wú)法被調(diào)用,但修改為public后可以被使用
//$t2->get1(); // private方法外部無(wú)法被調(diào)用

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28467.html

相關(guān)文章

  • PHP面向?qū)ο?/b>

    摘要:面向?qū)ο竺嫦驅(qū)ο蠡A(chǔ)面向?qū)ο笫裁词穷?lèi)具有相同屬性特征和方法行為的一系列個(gè)體的集合,類(lèi)是一個(gè)抽象的概念。析構(gòu)函數(shù),當(dāng)一個(gè)對(duì)象被銷(xiāo)毀前,自動(dòng)調(diào)用。作用是為新克隆的對(duì)象進(jìn)行初始化賦值對(duì)象序列化時(shí),自動(dòng)調(diào)用。使用抽象類(lèi)的作用限制實(shí)例化。 面向?qū)ο?面向?qū)ο蠡A(chǔ) 面向?qū)ο?什么是類(lèi)? 具有相同屬性(特征)和方法(行為)的一系列個(gè)體的集合,類(lèi)是一個(gè)抽象的概念。 什么是對(duì)象? 從類(lèi)中,拿到的具有具體...

    seanlook 評(píng)論0 收藏0
  • PHP_OOP

    摘要:特殊在,方法被對(duì)象調(diào)用執(zhí)行時(shí),會(huì)自動(dòng)確定是那個(gè)對(duì)象調(diào)用的該方法,會(huì)使用該對(duì)象為方法內(nèi)的賦值構(gòu)造析構(gòu)類(lèi),沒(méi)有作用域,作用域,只是講,函數(shù)內(nèi)和函數(shù)外。析構(gòu)在對(duì)象消失對(duì)象被銷(xiāo)毀時(shí),也會(huì)自動(dòng)執(zhí)行一個(gè)方法,稱之為析構(gòu)方法。 相關(guān)定義 對(duì)象(object):現(xiàn)實(shí)生活中的實(shí)體,在編程語(yǔ)言中的體現(xiàn)。實(shí)體都有屬性和功能。一組數(shù)據(jù),和操作管理這些數(shù)據(jù)的操作,定義在一起就形成了一個(gè)實(shí)體,稱之為對(duì)象。(屬性和...

    RiverLi 評(píng)論0 收藏0
  • PHP面試常考內(nèi)容之面向?qū)ο螅?)

    摘要:面試專欄正式起更,每周一三五更新,提供最好最優(yōu)質(zhì)的面試內(nèi)容。繼上一篇面試常考內(nèi)容之面向?qū)ο蟀l(fā)表后,今天更新面向?qū)ο蟮淖詈笠黄C嫦驅(qū)ο蟮闹饕卣鳛榉庋b繼承多態(tài)。為了提高內(nèi)聚性減少引起變化,單一原則是低耦合高內(nèi)聚的面向原則上的引申。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質(zhì)的PHP面試內(nèi)容。繼上一篇PHP面試常考內(nèi)容之面向?qū)ο螅?)發(fā)表后,今天更新面向?qū)ο蟮淖詈笠黄?...

    xfee 評(píng)論0 收藏0
  • 類(lèi)的關(guān)鍵字、魔術(shù)方法與單態(tài)設(shè)計(jì)模式

    摘要:方法如無(wú)的調(diào)用,則默認(rèn)為為靜態(tài)方法。聲明靜態(tài)方法會(huì)有錯(cuò)誤提示,但很方便,能用盡量用效率高。 一、面向?qū)ο蟮年P(guān)鍵字 1.instanceof操作符: 對(duì)象是否屬于類(lèi)(檢測(cè)繼承性),如下: class Person {}; class Student extends Person {}; $p=new Person; $s=new Student; ...

    bovenson 評(píng)論0 收藏0
  • 面向?qū)ο蟮奶匦裕悍庋b性

    摘要:一封裝的特性對(duì)象的屬性或方法加上修飾符盡可能隱藏內(nèi)部細(xì)節(jié)訪問(wèn)控制特性修飾符種類(lèi)二修飾符私有性封裝,外部不能調(diào)用,內(nèi)部其他成員可以,用于為其他方法鋪路的方法,不露出接口。 一、封裝的特性 1.對(duì)象的屬性或方法加上修飾符 2.盡可能隱藏內(nèi)部細(xì)節(jié) 3.訪問(wèn)控制 4.PHP5特性 5.修飾符種類(lèi):public/private/protected/var 二、修飾符 1.private: ...

    freecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<