亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP中initialize與construct有什么區別

發布時間:2021-01-13 15:29:30 來源:億速云 閱讀:168 作者:Leah 欄目:開發技術

本篇文章為大家展示了ThinkPHP中initialize與construct有什么區別,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

ThinkPHP中initialize()和construct()這兩個函數都可以理解為構造函數,前面一個是tp框架獨有的,后面的是php構造函數,那么這兩個有什么不同呢?

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

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

a.php

class a{

  function __construct(){

    echo 'a';

  }

}

b.php(注意:這里構造函數沒有調用parent::__construct();)

include 'a.php';

class b extends a{

  function __construct(){

    echo 'b';

  }

}

 

$test=new b();

運行結果:

b

可見,雖然b類繼承了a類,但是輸出結果證明程序只是執行了b類的構造函數,而沒有自動執行父類的構造函數。

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

include 'a.php';

class b extends a{

  function __construct(){

    parent::__construct();

    echo 'b';

  }

}

 

$test=new b();

那么輸出結果是:

ab

此時才執行了父類的構造函數。

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

BaseAction.class.php

class BaseAction extends Action{

  public function _initialize(){

       echo 'baseAction';

  }

 
 

IndexAction.class.php

class IndexAction extends BaseAction{

  public function (){

       echo 'indexAction';

    }

運行Index下的index方法,輸出結果:

baseActionindexAcition

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

上述內容就是ThinkPHP中initialize與construct有什么區別,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长兴县| 遂昌县| 定州市| 晴隆县| 靖江市| 青海省| 周口市| 江门市| 龙川县| 民权县| 汕尾市| 武穴市| 常山县| 延庆县| 镇远县| 广河县| 滁州市| 若羌县| 屏山县| 吉木萨尔县| 鹤庆县| 黄浦区| 临夏县| 潍坊市| 西宁市| 尉氏县| 工布江达县| 新郑市| 延边| 中卫市| 姜堰市| 兰考县| 开封市| 仙桃市| 濉溪县| 湖南省| 涟源市| 泰安市| 民县| 丹阳市| 克拉玛依市|