最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

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

在我那本小筆記上,但是很久不寫字,曾經(jīng)高中那個(gè)那種飄逸靈動(dòng)的書寫筆法徹底丟到異次元。再加上之前的想法,所以就來學(xué)習(xí)學(xué)習(xí)技術(shù)大牛們寫寫博客,這不是為了裝逼,而只是讓自己工作成果的點(diǎn)點(diǎn)滴滴都能不隨時(shí)間流逝而消散。下面來看看詳細(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)行子類SonAction里的index()可以看到輸出的結(jié)果:

son

如果將子類改為:

<?php


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

  }
}

?>

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

fatherson

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

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

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

那是不是說明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í)行子類SonAction的index方法時(shí)發(fā)現(xiàn),輸出的結(jié)果為:father

即子類調(diào)用了父類的構(gòu)造函數(shù),而沒有調(diào)用子類的_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í)行子類SonAction的index方法,發(fā)現(xiàn)輸入的結(jié)果為hellofather

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

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

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

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

總結(jié)

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

相關(guān)文章

  • 如何使用GDB調(diào)試PHP程序

    如何使用GDB調(diào)試PHP程序

    GDB是GNU開源組織發(fā)布的一個(gè)強(qiáng)大的UNIX下的程序調(diào)試工具。如果你是在 UNIX平臺(tái)下做軟件,你會(huì)發(fā)現(xiàn)GDB這個(gè)調(diào)試工具有比VC、BCB的圖形化調(diào)試器更強(qiáng)大的功能。同時(shí)GDB也具有例如ddd這樣的圖形化的調(diào)試端
    2015-12-12
  • smarty模板引擎之配置文件數(shù)據(jù)和保留數(shù)據(jù)

    smarty模板引擎之配置文件數(shù)據(jù)和保留數(shù)據(jù)

    這篇文章主要介紹了smarty模板引擎之配置文件數(shù)據(jù)和保留數(shù)據(jù)的方法,實(shí)例分析了smarty模板引擎配置文件數(shù)據(jù)及獲取數(shù)據(jù)的具體技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP遞歸算法的簡單實(shí)例

    PHP遞歸算法的簡單實(shí)例

    今天小編就為大家分享一篇關(guān)于PHP遞歸算法的簡單實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 解決Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁的問題

    解決Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁的問題

    當(dāng)我們?cè)谑褂胿alidate等方法進(jìn)行驗(yàn)證時(shí),如果是錯(cuò)誤,則會(huì)返回首頁,那么這個(gè)跳轉(zhuǎn)到首頁如何實(shí)現(xiàn)的呢?今天小編給大家分享一篇教程關(guān)于Laravel使用驗(yàn)證時(shí)跳轉(zhuǎn)到首頁的解決辦法,一起看看吧
    2021-10-10
  • php之可變函數(shù)的實(shí)例詳解

    php之可變函數(shù)的實(shí)例詳解

    這篇文章主要介紹了php之可變函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握可變函數(shù),需要的朋友可以參考下
    2017-09-09
  • ThinkPHP公共配置文件與各自項(xiàng)目中配置文件組合的方法

    ThinkPHP公共配置文件與各自項(xiàng)目中配置文件組合的方法

    這篇文章主要介紹了ThinkPHP公共配置文件與各自項(xiàng)目中配置文件組合的方法,涉及array_merge函數(shù)將多個(gè)數(shù)組合并的方法,是ThinkPHP項(xiàng)目開發(fā)中非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • PHP防止刷新重復(fù)提交頁面的示例代碼

    PHP防止刷新重復(fù)提交頁面的示例代碼

    我們可以利用 PHP 的 Session 來避免這一點(diǎn),Session 保存在服務(wù)器端,在 PHP 過程中改變 Session 變量的值后,即保存在服務(wù)器端,下次訪問這個(gè)變量時(shí),得到是新賦的值,所以,可以用一個(gè) Session 變量記錄表單提交的次數(shù),大于1時(shí),就不再處理表單中的數(shù)據(jù)
    2015-11-11
  • PHP解決高并發(fā)的優(yōu)化方案實(shí)例

    PHP解決高并發(fā)的優(yōu)化方案實(shí)例

    這篇文章主要介紹了PHP解決高并發(fā)的優(yōu)化方案實(shí)例,介紹的非常詳細(xì),對(duì)這塊不太明白的小伙伴可以跟隨小編一起來探討研究吧!
    2020-12-12
  • ThinkPHP關(guān)于session的操作方法匯總

    ThinkPHP關(guān)于session的操作方法匯總

    這篇文章主要介紹了ThinkPHP關(guān)于session的操作方法,有助于讀者加深對(duì)ThinkPHP操作session的認(rèn)識(shí),需要的朋友可以參考下
    2014-07-07
  • php基于curl擴(kuò)展制作跨平臺(tái)的restfule 接口

    php基于curl擴(kuò)展制作跨平臺(tái)的restfule 接口

    這篇文章主要介紹了php基于curl擴(kuò)展制作跨平臺(tái)的restfule 接口的相關(guān)資料以及詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2015-05-05

最新評(píng)論

琼海市| 宣城市| 巴林右旗| 灵山县| 普宁市| 萨迦县| 民和| 衡南县| 贺州市| 梁平县| 丰县| 泉州市| 上栗县| 营山县| 水城县| 扬州市| 桐梓县| 宿松县| 青岛市| 顺昌县| 江源县| 武隆县| 沙坪坝区| 邵东县| 呼伦贝尔市| 新竹县| 东平县| 凌源市| 正蓝旗| 桃园市| 兴宁市| 太仓市| 高阳县| 论坛| 邯郸市| 定边县| 西林县| 牡丹江市| 商水县| 彰化市| 长岛县|