Home > Article > Backend Development > Use of thinkphp's c method
This article mainly introduces the use of the c method of thinkphp. It has a certain reference value. Now I share it with everyone. Friends in need can refer to it.
Friends who have used thinkphp know that C The () method is very commonly used in the entire framework. The implementation of the C method is very simple, but its function is very powerful. The following is a detailed explanation and usage examples of the C() method
1. The role of the C method
a. Load and set the user's configuration and save it in the static variable $_config within a C function
b. Read the user's configuration (read from $_congig)
2. Requirements analysis:
1.Set variables
1.Two-dimensional array
C(array('DB_PASSWORD'=>'root','DB_USERNAME'=>'root'),'DB'); C('DB.USER_NAME','XIAOCHEN);
2.One-dimensional array
C('USER_NAME','小陈'); C(array('USER_NAME'=>'chen','USER_HEIGHT'=>'170'));
2. Read variables
One-dimensional: C('USER_NAME');
Two-dimensional: C('DB.DB_PASSWORD' );
3. When debugging, view all configuration information
C();
3. How to store it and why it should be stored like this?
First let's look at a problem $arr=array('db'=>'mysql','DB'=>'mysql','Db'=>'mysql') ; From this array, we can see that db points to mysql, but it occupies three storage spaces. The development of the project is not completed by one person, and everyone's writing habits may be different, so in order to avoid this situation , the unified subscripts are converted to lowercase (of course uppercase is also possible), since the array in the configuration file has only two dimensions at most, it is enough to lowercase the subscript of the one-dimensional array
4 .How is it used in actual combat?
php Because the operation of arrays is very convenient, the configuration file is generally written in a configuration file and returned in the form of an array.
The general format is:
config.php<? return array('DB'=>'mysql',......);
Write variables into C: C(include 'config.php'); After writing, C('DB') can get the value
5. Written by the author (New dynamic addition Function of two-dimensional configuration)
C(array('name'=>'mysql','password'=>'root'),'db') 执行后array('db'=>array('name'=>'mysql','password'=>root))
Code example:
function C($name=null,$value=null){ static $_config = array(); if(!is_null($name)){ if(is_string($name)){ if(is_null($value)){ if(!strpos($name,'.')){ $name = strtolower($name); return isset($_config[$name]) ? $_config[$name] : null; }else{ $name = explode('.',$name); $name[0] = strtolower($name[0]); return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null; } }else{ if(!strpos($name,'.')){ $_config[strtolower($name)] = $value; }else{ $name = explode('.',$name); $_config[strtolower($name[0])][$name[1]] = $value; } return ; } }elseif(is_array($name)){ if(is_null($value)) $_config = array_merge($_config,$name); else{ $_config[$value] = $name; } return ; } }else{ return empty($_config) ? null: $_config; } }
The above is the entire content of this article. I hope it will be helpful to everyone's learning. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
The above is the detailed content of Use of thinkphp's c method. For more information, please follow other related articles on the PHP Chinese website!