国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

CodeIgniter輔助函數helper詳細解析

2020-02-19 15:56:04
字體:
來源:轉載
供稿:網友

  今天小編給大家分享一篇關于CodeIgniter輔助函數helper詳細解析,感興趣的朋友跟小編一起來了解一下吧!

  1.輔助函數概述

  helper輔助函數,顧名思義,就是幫助我們完成各種特定任務的一系列函數。并且每個輔助函數文件是一系列的功能集合匯總在一起。比如可以幫助我們創建鏈接的URL Helpers,有創建表的Form Helpers,有文本格式化輸出的Text Helpers,有設置和讀取cookie的Cookie Helpers,還有文件File Helpers等等。

  不同于大多數其他系統的是,CodeIgniter的輔助函數沒有采用類的方式實現。而是簡單的,程序的功能。每個輔助函數處理一個特定的任務,并且不必依靠其他函數。

  CodeIgniter默認是沒有載入輔助函數文件的,所以如果你想用輔助函數,就必須先載入它。 一旦被載入,輔助函數將全局可用(globally available),你可以在 controller 和 views 中使用它們。

  輔助函數文件一般保存在 system/helpers 或 application/helpers 文件夾中。CodeIgniter 將會先在 application/helpers 尋找對應的輔助函數文件, 如果目錄不存在或者目錄下沒有對應的輔助函數文件,CI 才會載入 system/helpers 下的輔助函數文件。

  2.載入輔助函數

  載入輔助函數是非常簡單的,如下所示:

  $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)文件里面你可以這樣做:

  

  這里的"Click Here" 是鏈接的名字,"blog/comments" 是鏈接的URI。

  注意:輔助函數中的函數名最好做好命名規范,如果同時加載多個輔助函數文件,且其中有名稱相同的函數,會導致 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_來自定義前綴.

  以上就是關于CodeIgniter輔助函數helper詳細解析了,想必都了解了吧,更多相關內容請繼續關注武林技術頻道。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旬阳县| 图片| 夏邑县| 北海市| 萨嘎县| 阜新市| 彭州市| 定边县| 长顺县| 台中县| 东至县| 姜堰市| 新巴尔虎右旗| 滨海县| 淮南市| 宁晋县| 丰原市| 仙居县| 定边县| 灵丘县| 元氏县| 桐庐县| 赫章县| 黄梅县| 都安| 囊谦县| 康马县| 西昌市| 云龙县| 县级市| 通许县| 苏尼特左旗| 佛教| 元江| 合川市| 西安市| 马关县| 共和县| 凌源市| 西盟| 西盟|