2013-05-22 22 views
3

什麼時候是__construct打電話和什麼時候是索引叫?還有其他的區別嗎?Codeigniter 2索引和__construct之間的差異以及要放入什麼__construct

什麼投入__construct?最好的做法是什麼,我應該把$ this->加載調用...?還有什麼?

class Site extends CI_Controller { 

     public function __construct() { 

      parent::__construct(); 
      echo 'Hello World2'; 

    } 

    public function index() { 

      echo 'Hello World1'; 

    } 
} 

回答

5

__construct()首先被調用,則根據URL被稱爲index()或其他功能。

公共職能__construct()應包含以下內容:

  1. 在全班前使用分配的資源。 $這個 - >負載
  2. 檢查用戶身份驗證(如果整個班級需要它)

公共功能指數()應包含:只在這個函數中使用

  1. 分配資源
  2. 呼籲意見或顯示任何東西

這是壞的設計,如果公共職能__construct()包含:

  1. 顯示任何
  2. 只爲一個功能所需的所有代碼。
+0

^也構造不僅被稱爲befo重新使用index()方法,但也要在此控制器的所有其他方法之前。 – thpl

+0

@ThomasDavidPlat感謝您的評論。英語不是我的本地人,如何構建正確的句子,它會是什麼之前調用的構造函數? –

+0

Nevermind :)也不是我的母語。我會寫如下所示的內容:「__construct()方法將在對象實例化期間執行,因此在類的任何其他方法執行之前講話」 – thpl

0

指數(),而調用函數索引或默認,你可以說指數()是一個默認功能... Strightly我們可以說,__construct()將被執行一個這將是第一方法而一個控制器通過它的功能稱爲工作原理構造

0

__constructconstucter的類,而index()是默認方法。

假設您呼叫http://yoursite.com/這相當於http://yoursite.com/your_default_controller/index

這意味着,如果沒有在您的網址,指數()的控制器的第三段默認情況下調用。

您可以在constucter中初始化事物並加載視圖和模型。

可以傳遞數據查看索引()

0

假設你正在呼籲http://yoursite.com/這在相當於http://yoursite.com/your_default_controller/index

index()將被執行,而你撥打index功能或默認,你可以說index()是一個默認的功能...我們可以說,__construct()是第一個方法,而控制器通過它的功能調用作爲構造函數的作品