久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ThinkPHP中initialize和construct的不同

 小馬哥技術(shù)屋 2016-10-08
ThinkPHP中initialize()和construct()這兩個函數(shù)都可以理解為構(gòu)造函數(shù),前面一個是tp框架獨有的,,后面的是php構(gòu)造函數(shù),,那么這兩個有什么不同呢?

 

在網(wǎng)上搜索,,很多答案是兩者是一樣的,,ThinkPHP中initialize相當(dāng)于php的construct,這么說是錯誤的,,如果這樣,,tp為什么不用construct,而要自己弄一個ThinkPHP版的initialize構(gòu)造函數(shù)呢,?

 

自己試一下就知道兩者的不同了,。

 

a.php

class a{

    function __construct(){

        echo 'a';

    }

}

復(fù)制代碼

b.php(注意:這里構(gòu)造函數(shù)沒有調(diào)用parent::__construct();)

include 'a.php';

class b extends a{

    function __construct(){

        echo 'b';

    }

}

 

$test=new b();

復(fù)制代碼

運行結(jié)果:

b

復(fù)制代碼

可見,雖然b類繼承了a類,,但是輸出結(jié)果證明程序只是執(zhí)行了b類的構(gòu)造函數(shù),,而沒有自動執(zhí)行父類的構(gòu)造函數(shù)。

 

如果b.php的構(gòu)造函數(shù)加上parent::__construct(),,就不同了,。

include 'a.php';

class b extends a{

    function __construct(){

        parent::__construct();

        echo 'b';

    }

}

 

$test=new b();

復(fù)制代碼

那么輸出結(jié)果是:

ab

復(fù)制代碼

此時才執(zhí)行了父類的構(gòu)造函數(shù)。

 

我們再來看看thinkphp的initialize()函數(shù)。

 

BaseAction.class.php

class BaseAction extends Action{

    public function _initialize(){

             echo 'baseAction';

    }

復(fù)制代碼

IndexAction.class.php

class IndexAction extends BaseAction{

    public function (){

             echo 'indexAction';

        }

復(fù)制代碼

運行Index下的index方法,,輸出結(jié)果:

baseActionindexAcition

復(fù)制代碼

可見,,子類的_initialize方法自動調(diào)用父類的_initialize方法。而php的構(gòu)造函數(shù)construct,,如果要調(diào)用父類的方法,,必須在子類構(gòu)造函數(shù)顯示調(diào)用parent::__construct();

 

這就是ThinkPHP中initialize和construct的不同。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多