2010-05-12 85 views

回答

52

好吧,所以CodeIgniter中的所有內容都通過超級魔術變量$this運行。這僅適用於課程,因爲$this基本上定義了當前課程。

你的控制器是一類,所以$這是在那裏,讓你做$this->load->model('whatever');

在模型中,您還使用一個類。它在這裏略有不同,因爲$this只包含有用的東西,因爲您正在從模型中擴展。仍然,$this仍然有效。

當您使用幫助程序或庫時,您需要找到相應的「實例」或$this

$ci =& get_instance(); 

...讓$ci包含完全相同的東西/代碼/實用性爲$this,即使您不在一個班,或者不繼承它的類。

這是對2個品脫之後的初學者的解釋,所以它可能是錯的或者是正確的。 ;-)

+2

2品脫,呃?那麼,圖書館/幫手的有用性是什麼?爲什麼不使用模型? – 2010-05-12 14:38:10

+2

當然,所有事情都是PHP課程,你可以隨心所欲地放置任何你喜歡的東西。一般來說,在CodeIgniter中,它被分解爲「數據庫交互/業務邏輯」=模型,簡單函數進入幫助程序,一般類是庫。 – 2010-05-13 08:07:12

10

這是singleton pattern的實現。從本質上講,這個類只有一個實例,它被設計爲可以在全局訪問。 get_instance方法是靜態的,因此提供了從代碼中的任何位置訪問實例的方法。

+1

不夠炫耀。我是SUPER NOOB! :) – 2010-05-12 14:37:09

+5

@Kevin:在這種情況下,我建議您在深入研究依賴它的框架之前,開始閱讀關於面向對象編程(OOP)的知識! – 2010-05-12 15:09:02

+2

會做,會! – 2010-05-12 15:11:39