成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

PHP面向?qū)ο笾衝ew self( )和 new static( ) 的區(qū)別

missonce / 686人閱讀

摘要:首先闡明結(jié)論,在中指向定義了當(dāng)前被調(diào)用方法的類,指向調(diào)用當(dāng)前靜態(tài)方法的類。下面的例子更好的說明了和之間的差異后者使用了的后期靜態(tài)綁定指向調(diào)用方法的當(dāng)前類

首先闡明結(jié)論,在PHP中 self指向定義了當(dāng)前被調(diào)用方法的類, static指向調(diào)用當(dāng)前靜態(tài)方法的類。

接下來通過一個例子來證明上面的結(jié)果

class A 
{
    public static $_a = "Class A";

    public static function echoProperty()
    {
        echo self::$_a . PHP_EOL;
    }
}

class B extends A 
{
    public static $_a = "Class B";
}

$obj = new B();
B::echoProperty();//輸出 Class A

之所以會這樣是因?yàn)槭褂胹elf:: 或者_(dá)_CLASS__對當(dāng)前類的靜態(tài)引用,取決于定義被調(diào)用方法所在的類,將上面Class A的方法echoProperty做一下修改變成:

class A 
{
    public static $_a = "Class A";

    public static function echoProperty()
    {
        echo static::$_a . PHP_EOL;
    }
}
//再次調(diào)用B::echoProperty將輸出   "CLASS B"

為了避免上面第一個例子中看到的子類重寫父類的靜態(tài)屬性后,使用繼承來的方法仍然訪問父類的靜態(tài)屬性, PHP5.3增加了一個新的語法:后期靜態(tài)綁定(Late static binding), 使用static關(guān)鍵字替代self關(guān)鍵字,使得static指向與get_called_class()返回的相同的類,即當(dāng)前調(diào)用靜態(tài)方法的類, 該關(guān)鍵字對于靜態(tài)方法的訪問同樣有效。

下面的例子更好的說明了new self()和new static()之間的差異(后者使用了PHP的后期靜態(tài)綁定指向調(diào)用方法的當(dāng)前類)

class A 
{
    public static function get_self() 
    {
        return new self();
    }

    public static function get_static() 
    {
        return new static();
    }
}

class B extends A {}

echo get_class(B::get_self());  // A
echo get_class(B::get_static()); // B
echo get_class(A::get_self()); // A
echo get_class(A::get_static()); // A

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/22039.html

相關(guān)文章

  • php面向對象selfstatic區(qū)別

    摘要:在的面向?qū)ο缶幊讨?,總會遇到可你知道和的區(qū)別么其實(shí)區(qū)別很簡單,只需要寫幾個就能懂得到輸出可以發(fā)現(xiàn),在子類中還是會調(diào)用父類的方法得到輸出可以看到,在調(diào)用,子類哪怕調(diào)用的是父類的方法,但是父類方法中調(diào)用的方法還會是子類的方法好繞嘴。。 在php的面向?qū)ο缶幊讨校倳龅?class test{ public static function test(){ self::func(...

    microcosm1994 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你對象”還好嗎?

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

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

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

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

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

    AaronYuan 評論0 收藏0
  • PHP設(shè)計模式

    摘要:設(shè)計模式理解設(shè)計模式是面向?qū)ο缶幊痰慕?jīng)驗(yàn)總結(jié)和最佳實(shí)踐解決某一類特定問題。設(shè)計模式分類創(chuàng)建型單例模式工廠模式簡單工廠抽象工廠構(gòu)建者模式原型模式結(jié)構(gòu)型行為型觀察者模式責(zé)任鏈模式單例模式單例模式一般使用在資源共享和需要控制資源的情況下。 面向?qū)ο笈c面向過程的區(qū)別 做事情的思考方式不同面向?qū)ο?---分析再拆出對象面向過程----分析再拆出步驟 聯(lián)系面向?qū)ο蠛兔嫦蜻^程都是一種編程思維,面向...

    mo0n1andin 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<