問題:ThinkPHP的C函數(shù)用于獲取配置參數(shù),我想知道它是如何獲取配置文件里的參數(shù)的?
- function C($name=null,$value=null)
- {
- static $_config = array();
- // 無參數(shù)時獲取所有
- if(emptyempty($name)) return $_config;
- // 優(yōu)先執(zhí)行設(shè)置獲取或賦值
- if (is_string($name))
- {
- if (!strpos($name,'.')) {
- $name = strtolower($name);
- if (is_null($value))
- return isset($_config[$name])? $_config[$name] : null;
- $_config[$name] = $value;
- return;
- }
- // 二維數(shù)組設(shè)置和獲取支持
- $name = explode('.',$name);
- $name[0] = strtolower($name[0]);
- if (is_null($value))
- return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null;
- $_config[$name[0]][$name[1]] = $value;
- return;
- }
- // 批量設(shè)置
- if(is_array($name))
- return $_config = array_merge($_config,array_change_key_case($name));
- return null;// 避免非法參數(shù)
- }
- 以下是部分參數(shù)
- return array(
- 'APP_DEBUG' = > false, // 是否開啟調(diào)試模式
- 'APP_DOMAIN_DEPLOY' = > false, // 是否使用獨立域名部署項目
- 'APP_PLUGIN_ON' = > false, // 是否開啟插件機制
- 'APP_FILE_CASE' = > false, // 是否檢查文件的大小寫 對Windows平臺有效
- 'APP_GROUP_DEPR' = > '.', // 模塊分組之間的分割符
- 'APP_GROUP_LIST' = > '', // 項目分組設(shè)定,多個組之間用逗號分隔,例如'Home,Admin'
- 'APP_AUTOLOAD_REG' = > false, // 是否開啟SPL_AUTOLOAD_REGISTER
- 'APP_AUTOLOAD_PATH' = > 'Think.Util.',// __autoLoad 機制額外檢測路徑設(shè)置,注意搜索順序
- 'APP_CONFIG_LIST' = > array('taglibs','routes','tags','htmls','modules','actions'),// 項目額外需要加載的配置列表,默認包括:taglibs(標簽庫定義),routes(路由定義),tags(標簽定義),(htmls)靜態(tài)緩存定義, modules(擴展模塊),actions(擴展操作)
- )
答:這個實際上不是ThinkPHP的問題域,是PHP的基礎(chǔ)知識.
1.如下面是配置文件config.php.直接返回一個配置項數(shù)組.
- return array(
- 'APP_DEBUG' = > false, // 是否開啟調(diào)試模式
- 'APP_DOMAIN_DEPLOY' = > false, // 是否使用獨立域名部署項目
- 'APP_PLUGIN_ON' = > false, // 是否開啟插件機制
- 'APP_FILE_CASE' = > false, // 是否檢查文件的大小寫 對Windows平臺有效
- 'APP_GROUP_DEPR' = > '.', // 模塊分組之間的分割符
- 'APP_GROUP_LIST' = > '', // 項目分組設(shè)定,多個組之間用逗號分隔,例如'Home,Admin'
- 'APP_AUTOLOAD_REG' = > false, // 是否開啟SPL_AUTOLOAD_REGISTER
- 'APP_AUTOLOAD_PATH' = > 'Think.Util.',// __autoLoad 機制額外檢測路徑設(shè)置,注意搜索順序
- 'APP_CONFIG_LIST' = > array('taglibs','routes','tags','htmls','modules','actions'),// 項目額外需要加載的配置列表,默認包括:taglibs(標簽庫定義),routes(路由定義),tags(標簽定義),(htmls)靜態(tài)緩存定義, modules(擴展模塊),actions(擴展操作)
- )
2. 然后通過 $config = require("config.php"); 就可以獲取配置數(shù)組,就那么簡單!
關(guān)于require,顧名思義,就是用來包含文件的,相應(yīng)的還有include,以及兩個帶once的,通常情況下,包含成功返回1,包含失敗返回false,但是,如果被包含文件中用return返回,那么這個值就是return的值.
新聞熱點
疑難解答
圖片精選