成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

構(gòu)造函數(shù)與析構(gòu)函數(shù)執(zhí)行順序,記一次小bug修復(fù)。

xiao7cn / 2956人閱讀

摘要:執(zhí)行構(gòu)造函數(shù)執(zhí)行析構(gòu)函數(shù)第一次完畢第二次完畢執(zhí)行輸出執(zhí)行構(gòu)造函數(shù)第一次完畢執(zhí)行構(gòu)造函數(shù)執(zhí)行析構(gòu)函數(shù)第二次完畢執(zhí)行析構(gòu)函數(shù)終于逮到你了。。。這就導(dǎo)致了先執(zhí)行構(gòu)造函數(shù),然后再執(zhí)行析構(gòu)函數(shù)。

class Test {
    protected $client;
    protected static $name;

    public function __construct() {
        self::$name = "test";
    }

    public function __destruct() {
        self::$name = null;
    }

    public function get() {
        return self::$name;
    }
}
$a = new Test();
$a = (new Test());
echo $a->get();

執(zhí)行完以上代碼時輸出:

此時你會發(fā)現(xiàn),輸出的是空,而沒有輸出test。修改代碼,查看下整個流程。

class Test {
    protected $client;
    protected static $name;

    public function __construct() {
        self::$name = "test";
        echo "執(zhí)行構(gòu)造函數(shù)!
";
    }

    public function __destruct() {
        self::$name = null;
        echo "執(zhí)行析構(gòu)函數(shù)!
";
    }

    public function get() {
        return self::$name;
    }
}
$a = new Test();
echo "第一次new完畢!
";
$a = (new Test());
echo "第二次new完畢!
";
echo $a->get();

執(zhí)行輸出:

執(zhí)行構(gòu)造函數(shù)!
第一次new完畢!
執(zhí)行構(gòu)造函數(shù)!
執(zhí)行析構(gòu)函數(shù)!
第二次new完畢!
執(zhí)行析構(gòu)函數(shù)!

終于逮到你了。。。當新創(chuàng)建類賦值于同一個變量時,到底是先創(chuàng)建,還是先銷毀呢?是先創(chuàng)建新對象,然后再銷毀舊對象。這就導(dǎo)致了先執(zhí)行構(gòu)造函數(shù),然后再執(zhí)行析構(gòu)函數(shù)。在這一過程中切記不要操作對象內(nèi)的靜態(tài)屬性,否則會導(dǎo)致靜態(tài)屬性丟失。

第一發(fā)布地

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22592.html

相關(guān)文章

  • 記一次小程序之旅

    摘要:用戶綁定的邏輯主要復(fù)雜在既需要考慮微信本身的接口在不同情況下提供的數(shù)據(jù)不同,另外一方面就是考慮本身用戶模塊的業(yè)務(wù)邏輯問題。針對每一節(jié)課以及每一節(jié)系列課程生成小程序太陽碼主要涉及到幾個細節(jié)問題。 感覺已經(jīng)好久沒寫程序了,最近這段時間,一方面是學(xué)習了python,然后折騰了scrapy框架,用python寫了下守護進程程序監(jiān)聽任務(wù)以及用redis做隊列任務(wù)通信,并開進程來處理爬蟲任務(wù)。以上...

    不知名網(wǎng)友 評論0 收藏0
  • 【In PHP】析構(gòu)、作用域與引用

    摘要:在編寫一段析構(gòu)方法的研究代碼中,我遇到了交叉知識點導(dǎo)致的錯誤在不同作用域,析構(gòu)方法與引用次數(shù)導(dǎo)致了不一樣的結(jié)果。前提本文假裝你已經(jīng)明白什么是析構(gòu)方法作用域及引用次數(shù)。當析構(gòu)函數(shù)的調(diào)用鉤子去檢測引用數(shù)時,全局的實例自然無法觸發(fā)這個事件。 在編寫一段析構(gòu)方法的研究代碼中,我遇到了交叉知識點導(dǎo)致的錯誤——在不同作用域,析構(gòu)方法與引用次數(shù)導(dǎo)致了不一樣的結(jié)果。 前提 本文假裝你已經(jīng)明白什么是析構(gòu)...

    fai1017 評論0 收藏0
  • 記一次小程序項目的開發(fā)心得

    摘要:前言這段時間一直負責公司的小程序的開發(fā),總結(jié)了一些小程序的開發(fā)心得,方便自己以后的查閱也方便同仁少踩點坑。文章底部的技巧類小程序的識別小程序二維碼功能,小程序的高斯模糊,都是自己填的坑。 前言:這段時間一直負責公司的小程序的開發(fā),總結(jié)了一些小程序的開發(fā)心得,方便自己以后的查閱也方便同仁少踩點坑。文章底部的技巧類小程序的識別小程序二維碼功能,小程序的高斯模糊,都是自己填的坑。歡迎交流。 ...

    you_De 評論0 收藏0
  • 【C++】vector

    摘要:比起和統(tǒng)一的迭代器和引用更好。因此迭代器失效,實際就是迭代器底層對應(yīng)指針所指向的空間被銷毀了,而使用一塊已經(jīng)被釋放的空間,造成的后果是程序崩潰即如果繼續(xù)使用已經(jīng)失效的迭代器,程序可能會崩潰。 ...

    LiveVideoStack 評論0 收藏0

發(fā)表評論

0條評論

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