這篇文章主要介紹了ThinkPHP3.2架構自訂配置和載入用法,結合執行個體形式分析了thinkPHP3.2架構使用自訂配置儲存預定義數組資料相關操作技巧,需要的朋友可以參考下
本文執行個體講述了ThinkPHP3.2架構自訂配置和載入用法。分享給大家供大家參考,具體如下:
有時候我們會有一些規則定義每個數字對應的實際內容,比如說在下拉式功能表的時候:
<select name="reasonAndType" id=""> <option value="1">查詢物流</option> <option value="2">辦理退貨</option> <option value="3">諮詢退貨</option> <option value="4">諮詢傭金</option> <option value="5">諮詢規則</option> <option value="0">其他</option></select>
←實際效果
←資料庫存的效果
←顯示的時候。
這個例子裡,實際顯示的是漢字,實際的value值是數字,等我們向資料庫存的時候也是存數字,等我們從資料庫擷取的時候也是取數字,顯示的時候也是顯示漢字;
所以我們需要一個類似字典的東西,它定義了那個數字對應的漢字是什麼,定義的實際意義是什麼;
用資料庫能夠實現這個效果,但我們不用,因為對資料庫的操作開銷太大;
如果是普通的PHP環境,我們可以把規則單獨存到一個檔案裡,內容是一個數組:
type.PHP
$type = array('1' => '查詢物流','2' => '辦理退貨','3' => '諮詢退貨','4' => '諮詢傭金','5' => '諮詢規則','0' => '其他');
就像上面代碼那樣,定義好之後,存成一個檔案,當我們需要調用這個這個規則的時候,就include或者require,然後直接用$type這個變數去找就行了,比如:
require_once('type.php');echo $type[1]; //輸出'查詢物流'foreach($type as $k => $v){ //直接列印出最上面的下拉式功能表代碼,echo "<option value = '{$k}' >{$v}</option>";}
如果在ThinkPHP,要是想引入檔案,只能用絕對路徑,在include和require用__APP__或者__ROOT__快捷入口是不行的,U()造鏈函數我沒試,應該是可以實現的。
還有一種實現方式,也是我在這裡推薦的,就是直接把這套規則定義為這個網站的設定檔,當我們用的時候,用C()載入配置函數把這個數組載入出來賦給一個變數就好了。
上代碼了:
把你定義的規則放到conf下,這是私人設定檔,只有Home這個入口的才生效,也可以放到公用設定檔下,細節可以去查手冊。
return array('REASON_AND_TYPE' => array('1' => '查詢物流','2' => '辦理退貨','3' => '諮詢退貨','4' => '諮詢傭金','5' => '諮詢規則','0' => '其他'));
注意加上return;
注意,格式,return一個數組,鍵名是大寫的(為了好看),索引值是你要定義的東西,在這裡我們定義的是一個數組。
修改config.php檔案
<?phpreturn array(//'配置項'=>'配置值''DB_TYPE' => 'mysqli', // 資料庫類型'DB_HOST' => 'localhost', // 伺服器位址'DB_NAME' => 'kefu', // 資料庫名'DB_USER' => 'root', // 使用者名稱'DB_PWD' => 'root', // 密碼'DB_PORT' => '', // 連接埠'DB_PREFIX' => '', // 資料庫表首碼'LOAD_EXT_CONFIG' => 'reasonAndType', //這是我們自己添加的,LOAD_EXT_CONFIG鍵名固定,索引值是你的php檔案的檔案名稱,那個數組名字在這裡就不用管了);
這就算配置好了。
下面講調用這套規則:
$reasonAndTypeX = C('REASON_AND_TYPE');//直接用數組名字就可以了,C()函數能載入配置裡的鍵名所代表的值,賦給變數
注意,C()函數的裡面的值,是reasonAndType這個檔案的值。
var_dump($reasonAndTypeX);
就會輸入這個數組的內容
array('1' => '查詢物流','2' => '辦理退貨','3' => '諮詢退貨','4' => '諮詢傭金','5' => '諮詢規則','0' => '其他');
這樣就完成了自訂設定檔的設定和載入。
如果‘REASON_AND_TYPE'沒有配置,則會返回一個null值;
當然,你也可以設定預設值,代碼如下:
// 如果REASON_AND_TYPE尚未設定的話,則返回default_config字串C('my_config',null,'default_config');
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!