ThinkPHP學習筆記2

來源:互聯網
上載者:User

1.關於類繼承時候調用關係

      Action:
  
     class BaseAction extends Action  {
 
          function _initialize()
         {
        echo "initialize";
        $this->display("tests");
         }
 
          //function __construct()
          // {
          //  echo "construct";
    //      $this->display("tests");
          // }

    }
 
      class IndexAction extends BaseAction{
  
   function index()
   {
      echo"index";
   }
  
   }
  
   Tpl/default/Index/test.html模版頁內容:tests!
  
   由上可看出IndexAction繼承於BaseAction,
   我們通過頁面訪問index.php 時  它會執行個體化IndexAction 在自身沒有顯示的構造方法時,
   會先調用父類的構造方法,而_initialize又是什麼呢,他是該類初始化時調用的
   注意它不是PHP特有的 是此架構的。而__construct()是PHP的。
  
   如上調用 會輸出 initialize  tests   index  可以看到先是執行__initialize()方法  在執行index方法
  
   而在__initialize()方法內有個$this這個對象 其實他是IndexAction的執行個體對象,
  
   所以在執行display時會去找index目錄下的模版檔案。為什麼要用這方法呢?
  
   __construct()不是也可以啊,不行 在執行 __construct()時,該對象其實是還沒被執行個體化,執行 __construct()一試,
  
   那$this就會報$this non-object錯誤! 當兩者方法共存時候 只會調用 __construct()內的.

 

如果使用了內建模板引擎的話,可以在模板檔案裡面使用一些已經定義好的特殊字元串,系統在解析模板的時候會自動替換成相關的系統常量,這些字串的解析過程是在模板編譯的時候進行的。這些可替換的字串包括:

../public     //項目公用目錄

__PUBLIC__    //網站公用目錄

__ROOT__       //網站根目錄

__TMPL__//當前模板目錄

__APP__    //當前項目地址

__URL__   //當前模組地址

__ACTION__     //當前操作地址

__SELF__  //當前頁面地址

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.