亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

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

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

先貼上代碼(我的環(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(){

}
}

?>

運行子類SonAction里的index()可以看到輸出的結(jié)果:

son

如果將子類改為:

<?php


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

  }
}

?>

運行結(jié)果為;

fatherson

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

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

當我們把上述的構(gòu)造方法改為THINKPHP_initialize()方法時運行會發(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(){

  }

}

?>

當執(zhí)行子類SonAction的index方法時發(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é)論:

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

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

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

總結(jié)

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

相關(guān)文章

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

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

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

    三個類概括PHP的五種設(shè)計模式

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

    PHP防止跨域提交表單

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

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

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

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

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

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

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

    php實現(xiàn)常用文件上傳類的示例

    下面小編就為大家?guī)硪黄猵hp實現(xiàn)常用文件上傳類的示例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Laravel 實現(xiàn)添加多語言提示信息

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

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

    ThinkPHP?通用的API格式封裝實例代碼

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

    深入淺析PHP無限極分類的案例教程

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

最新評論