欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ThinkPHP中類(lèi)的構(gòu)造函數(shù)_construct()與_initialize()的區(qū)別詳解

 更新時(shí)間:2017年03月13日 11:56:24   作者:_construct  
這篇文章主要介紹了ThinkPHP中類(lèi)的構(gòu)造函數(shù)_construct()與_initialize()的區(qū)別,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。

前言

相信熟悉THINKPHP的phper基本上都很熟悉_initialize()這個(gè)方法,我們似乎也很少去使用_construct() ,除非自己寫(xiě)插件,否則還真是很少用到。

今天查看代碼突然看到_construct()這個(gè)php自帶的構(gòu)造方法,我的第一感覺(jué)是比較陌生,雖然之前學(xué)習(xí)java時(shí)經(jīng)常遇到,但是很久不用基本忘記。我平時(shí)的習(xí)慣是將知識(shí)的重點(diǎn)寫(xiě)

在我那本小筆記上,但是很久不寫(xiě)字,曾經(jīng)高中那個(gè)那種飄逸靈動(dòng)的書(shū)寫(xiě)筆法徹底丟到異次元。再加上之前的想法,所以就來(lái)學(xué)習(xí)學(xué)習(xí)技術(shù)大牛們寫(xiě)寫(xiě)博客,這不是為了裝逼,而只是讓自己工作成果的點(diǎn)點(diǎn)滴滴都能不隨時(shí)間流逝而消散。下面來(lái)看看詳細(xì)的介紹吧。

先貼上代碼(我的環(huán)境是wamp,使用了TP框架):

創(chuàng)建的FatherAction.class.php文件

<?php


class FatherAction extends Action{
  public function __construct(){
    echo 'father';
  }
}

?>

創(chuàng)建的SonAction.class.php文件

<?php


class SonAction extends FatherAction{
  public function __construct(){
    echo 'son';
  }
function index(){

}
}

?>

運(yùn)行子類(lèi)SonAction里的index()可以看到輸出的結(jié)果:

son

如果將子類(lèi)改為:

<?php


class SonAction extends FatherAction{
   public function __construct(){
    parent::__construct();
    echo 'son';
   }
  function index(){

  }
}

?>

運(yùn)行結(jié)果為;

fatherson

上面的結(jié)果可以得出結(jié)論:

在執(zhí)行子類(lèi)的構(gòu)造函數(shù)時(shí)并不會(huì)自動(dòng)調(diào)用父類(lèi)的構(gòu)造函數(shù),如果你要調(diào)用的話,那么要加上parent::__construct()

當(dāng)我們把上述的構(gòu)造方法改為THINKPHP_initialize()方法時(shí)運(yùn)行會(huì)發(fā)現(xiàn):結(jié)果與前面的一致,若要執(zhí)行父類(lèi)的_initialize()方法,也需要使用這一句:parent::_initialize()

那是不是說(shuō)明php自帶的構(gòu)造函數(shù)__construct()與THINKPHP的_initialize()方法一樣的呢?

先貼上兩段代碼:

<?php


class FatherAction extends Action{
  public function __construct(){
    echo 'father';
  }
}

?>
<?php


class SonAction extends FatherAction{
  public function _initialize(){
    echo 'son';
  }


  function index(){

  }

}

?>

當(dāng)執(zhí)行子類(lèi)SonAction的index方法時(shí)發(fā)現(xiàn),輸出的結(jié)果為:father

即子類(lèi)調(diào)用了父類(lèi)的構(gòu)造函數(shù),而沒(méi)有調(diào)用子類(lèi)的_initialize()方法

再貼上兩段代碼:

<?php


class FatherAction extends Action{
  public function __construct(){
    if(method_exists($this,"hello")){
      $this->hello();
    }
    echo 'father';
  }
}

?>
<?php


class SonAction extends FatherAction{
  public function _initialize(){
    echo 'son';
  }
  function index(){

  }

  function hello(){
    echo 'hello';
  }
}

?>

執(zhí)行子類(lèi)SonAction的index方法,發(fā)現(xiàn)輸入的結(jié)果為hellofather

由此可以得出結(jié)論:

  當(dāng)THINKPHP的父類(lèi)有構(gòu)造函數(shù)而子類(lèi)沒(méi)有時(shí),THINKPHP不會(huì)去執(zhí)行子類(lèi)的_initialize() ;

  當(dāng)THINKPHP的父類(lèi)子類(lèi)均有構(gòu)造函數(shù)時(shí),要調(diào)用父類(lèi)的構(gòu)造函數(shù)必須使用parent::__construct() ----------------- _initialize()同理;

  當(dāng)THINKPHP的子類(lèi)同時(shí)存在__construct構(gòu)造函數(shù)和_initialize()方法,只會(huì)執(zhí)行子類(lèi)的__construct構(gòu)造函數(shù)(這個(gè)本人親測(cè),上述代碼沒(méi)有)。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • php實(shí)現(xiàn)文件上傳基本驗(yàn)證

    php實(shí)現(xiàn)文件上傳基本驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)文件上傳基本驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 三個(gè)類(lèi)概括PHP的五種設(shè)計(jì)模式

    三個(gè)類(lèi)概括PHP的五種設(shè)計(jì)模式

    PHP的五種設(shè)計(jì)模式主要包括工廠模式,單元素模式,觀察者模式,命令鏈模式,策略模式
    2012-09-09
  • PHP防止跨域提交表單

    PHP防止跨域提交表單

    很簡(jiǎn)單的PHP防止跨域提交表單,為了安全,這些還是要做的。
    2013-11-11
  • 高性能PHP框架Symfony2經(jīng)典入門(mén)教程

    高性能PHP框架Symfony2經(jīng)典入門(mén)教程

    這篇文章主要介紹了高性能PHP框架Symfony2的入門(mén)教程,對(duì)于學(xué)習(xí)Symfony2的朋友有很好的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-07-07
  • 詳解PHP實(shí)現(xiàn)支付寶小程序用戶授權(quán)的工具類(lèi)

    詳解PHP實(shí)現(xiàn)支付寶小程序用戶授權(quán)的工具類(lèi)

    這篇文章主要介紹了詳解PHP實(shí)現(xiàn)支付寶小程序用戶授權(quán)的工具類(lèi),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • php實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)分表分段備份

    php實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)分表分段備份

    本文給大家分享的是php實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)分卷備份,選擇表進(jìn)行備份,實(shí)現(xiàn)單個(gè)sql文件及分卷sql導(dǎo)入。有需要的小伙伴可以參考下
    2015-06-06
  • php實(shí)現(xiàn)常用文件上傳類(lèi)的示例

    php實(shí)現(xiàn)常用文件上傳類(lèi)的示例

    下面小編就為大家?guī)?lái)一篇php實(shí)現(xiàn)常用文件上傳類(lèi)的示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Laravel 實(shí)現(xiàn)添加多語(yǔ)言提示信息

    Laravel 實(shí)現(xiàn)添加多語(yǔ)言提示信息

    今天小編就為大家分享一篇Laravel 實(shí)現(xiàn)添加多語(yǔ)言提示信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • ThinkPHP?通用的API格式封裝實(shí)例代碼

    ThinkPHP?通用的API格式封裝實(shí)例代碼

    這篇文章主要介紹了ThinkPHP通用的API格式封裝,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 深入淺析PHP無(wú)限極分類(lèi)的案例教程

    深入淺析PHP無(wú)限極分類(lèi)的案例教程

    平時(shí)開(kāi)發(fā)中或多或少不可避免會(huì)遇到無(wú)限極分類(lèi)的問(wèn)題,因?yàn)樾?、邏輯等?wèn)題也一直使這類(lèi)問(wèn)題比較尖銳。今天小編以yii2框架為基礎(chǔ),欄目無(wú)限級(jí)為例,給大家介紹php無(wú)限極分類(lèi)的相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05

最新評(píng)論