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

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP 的 C 函數實現原理

2024-09-09 15:19:38
字體:
來源:轉載
供稿:網友

問題:ThinkPHP的C函數用于獲取配置參數,我想知道它是如何獲取配置文件里的參數的?

  1. function C($name=null,$value=null) 
  2. static $_config = array(); 
  3. // 無參數時獲取所有 
  4. if(emptyempty($name)) return $_config
  5. // 優先執行設置獲取或賦值 
  6. if (is_string($name)) 
  7. if (!strpos($name,'.')) { 
  8. $name = strtolower($name); 
  9. if (is_null($value)) 
  10. return isset($_config[$name])? $_config[$name] : null; 
  11. $_config[$name] = $value
  12. return
  13. // 二維數組設置和獲取支持 
  14. $name = explode('.',$name); 
  15. $name[0] = strtolower($name[0]); 
  16. if (is_null($value)) 
  17. return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null; 
  18. $_config[$name[0]][$name[1]] = $value
  19. return
  20. // 批量設置 
  21. if(is_array($name)) 
  22. return $_config = array_merge($_config,array_change_key_case($name)); 
  23. return null;// 避免非法參數 
  24. 以下是部分參數 
  25. return array
  26.  
  27.  
  28. 'APP_DEBUG' = > false, // 是否開啟調試模式 
  29. 'APP_DOMAIN_DEPLOY' = > false, // 是否使用獨立域名部署項目 
  30. 'APP_PLUGIN_ON' = > false, // 是否開啟插件機制 
  31. 'APP_FILE_CASE' = > false, // 是否檢查文件的大小寫 對Windows平臺有效 
  32. 'APP_GROUP_DEPR' = > '.'// 模塊分組之間的分割符 
  33. 'APP_GROUP_LIST' = > ''// 項目分組設定,多個組之間用逗號分隔,例如'Home,Admin' 
  34. 'APP_AUTOLOAD_REG' = > false, // 是否開啟SPL_AUTOLOAD_REGISTER 
  35. 'APP_AUTOLOAD_PATH' = > 'Think.Util.',// __autoLoad 機制額外檢測路徑設置,注意搜索順序 
  36. 'APP_CONFIG_LIST' = > array('taglibs','routes','tags','htmls','modules','actions'),// 項目額外需要加載的配置列表,默認包括:taglibs(標簽庫定義),routes(路由定義),tags(標簽定義),(htmls)靜態緩存定義, modules(擴展模塊),actions(擴展操作) 

答:這個實際上不是ThinkPHP的問題域,是PHP的基礎知識.

1.如下面是配置文件config.php.直接返回一個配置項數組.

  1. return array
  2.  
  3.  
  4. 'APP_DEBUG' = > false, // 是否開啟調試模式 
  5. 'APP_DOMAIN_DEPLOY' = > false, // 是否使用獨立域名部署項目 
  6. 'APP_PLUGIN_ON' = > false, // 是否開啟插件機制 
  7. 'APP_FILE_CASE' = > false, // 是否檢查文件的大小寫 對Windows平臺有效 
  8. 'APP_GROUP_DEPR' = > '.'// 模塊分組之間的分割符 
  9. 'APP_GROUP_LIST' = > ''// 項目分組設定,多個組之間用逗號分隔,例如'Home,Admin' 
  10. 'APP_AUTOLOAD_REG' = > false, // 是否開啟SPL_AUTOLOAD_REGISTER 
  11. 'APP_AUTOLOAD_PATH' = > 'Think.Util.',// __autoLoad 機制額外檢測路徑設置,注意搜索順序 
  12. 'APP_CONFIG_LIST' = > array('taglibs','routes','tags','htmls','modules','actions'),// 項目額外需要加載的配置列表,默認包括:taglibs(標簽庫定義),routes(路由定義),tags(標簽定義),(htmls)靜態緩存定義, modules(擴展模塊),actions(擴展操作) 

2. 然后通過 $config = require("config.php"); 就可以獲取配置數組,就那么簡單!

關于require,顧名思義,就是用來包含文件的,相應的還有include,以及兩個帶once的,通常情況下,包含成功返回1,包含失敗返回false,但是,如果被包含文件中用return返回,那么這個值就是return的值.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 庐江县| 江都市| 诏安县| 申扎县| 涞源县| 高陵县| 小金县| 桑日县| 舟曲县| 和平区| 苗栗县| 鲁甸县| 鹤庆县| 高唐县| 苍山县| 睢宁县| 娄烦县| 从化市| 泉州市| 花莲市| 东明县| 安陆市| 略阳县| 台东县| 枣强县| 阿巴嘎旗| 凤翔县| 陕西省| 广东省| 阳信县| 绥滨县| 宁海县| 疏勒县| 大英县| 广德县| 吉隆县| 岐山县| 揭东县| 水富县| 紫金县| 玉溪市|