- $this->load->helper('name');
複製代碼其中name是輔助函數檔案的名字(不帶.php尾碼 和"helper" 部分)。 例如,要載入檔案名稱為url_helper.php的URL Helper,可採用下面的語句:
- $this->load->helper('url');
複製代碼輔助函數可以在你的控制器(controller)的任何地方被載入,甚至可以在視圖(View)檔案中被載入(我們並不建議你這麼做)。 請在使用輔助函數之前載入他們。你可以在你的控制器建構函式中載入它們,以便輔助函數能自動在其他函數之前被載入。你也可以在要用到輔助函數的地方當場載入。 注意: 輔助函數載入函數並不傳回值,所以不要嘗試將它付給一個變數,直接像這樣用就可以了。 3,載入多個輔助函數如果你想一次載入多個輔助函數,你可以這樣做:
- $this->load->helper( array('helper1', 'helper2', 'helper3') );
複製代碼4,自動載入輔助函數如果你想要的話,CodeIgniter可以自動為你載入輔助函數。你可以通過開啟 application/config/autoload.php ,並往自動載入數組(autoload array)中增加輔助函數來實現。 5,使用輔助函數一旦載入了想要用到輔助函數檔案,你就可以用標準的函數調用方法來使用裡面的函數。例如,要使用anchor() 函數來建立一個連結,在視圖(View)檔案裡面你可以這樣做:
- echo anchor('blog/comments', 'Click Here');
- ?>
複製代碼這裡的"Click Here" 是連結的名字,"blog/comments" 是連結的URI。(程式員之家 bbs.it-home.org 收集整理)注意:輔助函數中的函數名最好做好命名規範,如果同時載入多個輔助函數檔案,且其中有名稱相同的函數,會導致 CI 出現空白頁問題(這也是 PHP 語法錯誤)。 6,“擴充”輔助函數如果想 "擴充"一個原有的 Helpers,可以在application/helpers/ 目錄下建立一個新的helper,新的helper的名字是在被“擴充”的Helper的名字開頭多加一個 MY_ (這是可以配置的. 見下.).如果只是在原有的helper中添加一些新的功能,比如,添加一兩個新的方法,或者是修改一個方法;就不值得重寫自己的helper。在這種情況下,最好是“擴充”已有的helper。“擴充”一詞用在這裡不是很恰當,因為Helper的方法是過程式的(procedural) 和離散(discrete)的,在傳統的語言環境中無法被“擴充”,不過在CodeIgniter中,你可以添加或修改helper的方法。例如,擴充一個本地已有的 Array Helper 你應該建立一個檔案: application/helpers/MY_array_helper.php, 並添加或重寫(override)其中的一些方法:
- // any_in_array() is not in the Array Helper, so it defines a new function
- function any_in_array($needle, $haystack)
- {
- $needle = (is_array($needle)) ? $needle : array($needle);
- foreach ($needle as $item)
- {
- if (in_array($item, $haystack))
- {
- return TRUE;
- }
- }
- return FALSE;
- }
- // random_element() is included in Array Helper, so it overrides the native function
- function random_element($array)
- {
- shuffle($array);
- return array_pop($array);
- }
-
複製代碼7,設定首碼(Prefix)用於"擴充" helper 而加上首碼的檔案同樣也是對庫和核心類的擴充。為了設定自訂的首碼,請開啟 application/config/config.php 檔案,找到:
- $config['subclass_prefix'] = 'MY_';
複製代碼注意:由於所有CodeIgniter內建的庫都被冠以 CI_ 這樣的首碼命名,所以請不要使用CI_來自訂首碼. |