Use of thinkphp's c method

不言
Release: 2023-03-30 20:46:02
Original
3073 people have browsed it

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);
Copy after login

2.One-dimensional array

C('USER_NAME','小陈');
C(array('USER_NAME'=>'chen','USER_HEIGHT'=>'170'));
Copy after login

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(&#39;DB&#39;=>&#39;mysql&#39;,......);
Copy after login

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(&#39;name&#39;=>&#39;mysql&#39;,&#39;password&#39;=>&#39;root&#39;),&#39;db&#39;) 执行后array(&#39;db&#39;=>array(&#39;name&#39;=>&#39;mysql&#39;,&#39;password&#39;=>root))
Copy after login

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,&#39;.&#39;)){
       $name = strtolower($name);
       return isset($_config[$name]) ? $_config[$name] : null; 
      }else{
       $name = explode(&#39;.&#39;,$name);
       $name[0] = strtolower($name[0]);
       return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null;
      }
     }else{
      if(!strpos($name,&#39;.&#39;)){
       $_config[strtolower($name)] = $value;
      }else{
       $name = explode(&#39;.&#39;,$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;
  }
}
Copy after login

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:

ThinkPHP R method example

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template