首頁  >  文章  >  php教程  >  CodeIgniter學習筆記 Item8--CI輔助函數

CodeIgniter學習筆記 Item8--CI輔助函數

黄舟
黄舟原創
2016-12-29 10:31:531229瀏覽

輔助函數是幫助我們完成特定任務的函數。每個輔助函數檔案只是一些函數的集合。例如,URL Helpers 可以幫助我們建立鏈接,Form Helpers 可以幫助我們建立表單,Text Helpers 提供一系列的格式化輸出方式,Cookie Helpers 能幫助我們設定和讀取COOKIE, File Helpers 能幫助我們處理文件,等等。跟其他部分不同的是,輔助函數不是用類別的方式來實現的。它們只是一些簡單的過程處理函數。 每個輔助函數處理一個特定的任務,並且不必依靠其他函數。

CodeIgniter預設是沒有載入輔助函數檔案的,所以如果你想用輔助函數,就必須先載入它。一旦被載入,輔助函數將全域可用。輔助函式檔案一般會保存在system/helpers
或 application/helpers 資料夾中。 CodeIgniter 將會先在application/helpers
尋找對應的輔助函數文件, 如果目錄不存在或目錄下沒有對應的輔助函數文件,CI 才會載入 system/helpers 下的輔助函數文件。

載入輔助函數是非常簡單的:

[code]$this->load->helper('name');

name 是輔助函數文件的名字(不帶.php後綴 和”helper” 部分)。

例如,要載入文件名為url_helper.php
的URL Helper,你將會用到下面的語句:

[code]$this->load->helper('url');

一旦你載入了想要用到輔助函數文件,你就可以用標準的函數呼叫方法來使用裡面的函數。

例如,要使用anchor() 函數來建立一個鏈接,在視圖(View)文件裡面你可以這樣做:

[code]<?php echo anchor(&#39;blog/comments&#39;, &#39;Click Here&#39;);?>

“Click Here” 是鏈接的名字,”blog/comments” 是鏈接的URI 。

如果想」擴充」一個原有的Helpers,可以在你的application/helpers/目錄下創建一個新的helper,新的helper的名字是在被「擴展」的Helper的名字開頭多加一個MY_,這裡的前綴是可以設定的,為了設定你自訂的前綴,請打開application/config/config.php
檔案,然後找到如下的條目:

[code]$config[&#39;subclass_prefix&#39;] = &#39;MY_&#39;;

如果你想做的只是在原有的helper中添加一些新的功能,例如,增加一兩個新的方法,或是修改一個方法;就不值得重寫自己的helper。在這種情況下,最好是「擴充」已有的helper。 「擴展」一詞用在這裡不是很恰當,因為Helper的方法是過程式的(procedural)和離散(discrete)的,在傳統的語言環境中無法被「擴展”,不過在CodeIgniter中,你可以添加或修改helper的方法。

例如,擴展一個本地已有的Array Helper你應該建立一個文件:application/helpers/MY_array_helper.php
,並添加或重寫(override)其中的一些方法:

[code]// 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);
}

 以上就是CodeIgniter Item8--CI輔助函數的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn