CodeIgniter輔助函數helper用法詳解

來源:互聯網
上載者:User
  1. $this->load->helper('name');
複製代碼

其中name是輔助函數檔案的名字(不帶.php尾碼 和"helper" 部分)。

例如,要載入檔案名稱為url_helper.php的URL Helper,可採用下面的語句:

  1. $this->load->helper('url');
複製代碼

輔助函數可以在你的控制器(controller)的任何地方被載入,甚至可以在視圖(View)檔案中被載入(我們並不建議你這麼做)。 請在使用輔助函數之前載入他們。你可以在你的控制器建構函式中載入它們,以便輔助函數能自動在其他函數之前被載入。你也可以在要用到輔助函數的地方當場載入。

注意: 輔助函數載入函數並不傳回值,所以不要嘗試將它付給一個變數,直接像這樣用就可以了。

3,載入多個輔助函數如果你想一次載入多個輔助函數,你可以這樣做:

  1. $this->load->helper( array('helper1', 'helper2', 'helper3') );
複製代碼

4,自動載入輔助函數如果你想要的話,CodeIgniter可以自動為你載入輔助函數。你可以通過開啟 application/config/autoload.php ,並往自動載入數組(autoload array)中增加輔助函數來實現。

5,使用輔助函數一旦載入了想要用到輔助函數檔案,你就可以用標準的函數調用方法來使用裡面的函數。例如,要使用anchor() 函數來建立一個連結,在視圖(View)檔案裡面你可以這樣做:

  1. echo anchor('blog/comments', 'Click Here');
  2. ?>
複製代碼

這裡的"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)其中的一些方法:

  1. // any_in_array() is not in the Array Helper, so it defines a new function
  2. function any_in_array($needle, $haystack)
  3. {
  4. $needle = (is_array($needle)) ? $needle : array($needle);
  5. foreach ($needle as $item)
  6. {
  7. if (in_array($item, $haystack))
  8. {
  9. return TRUE;
  10. }
  11. }
  12. return FALSE;
  13. }
  14. // random_element() is included in Array Helper, so it overrides the native function
  15. function random_element($array)
  16. {
  17. shuffle($array);
  18. return array_pop($array);
  19. }
複製代碼

7,設定首碼(Prefix)用於"擴充" helper 而加上首碼的檔案同樣也是對庫和核心類的擴充。為了設定自訂的首碼,請開啟 application/config/config.php 檔案,找到:

  1. $config['subclass_prefix'] = 'MY_';
複製代碼

注意:由於所有CodeIgniter內建的庫都被冠以 CI_ 這樣的首碼命名,所以請不要使用CI_來自訂首碼.

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.