在Codeigniter中创建全局变量和配置变量有什么区别?

时间:2017-06-30 08:12:32

标签: php codeigniter global-variables codeigniter-3

根据Code Igniter - best place to declare global variable,我可以在Codeigniter中创建全局变量。

我也可以在Codeigniter中为config.php添加自定义配置变量。

以上两种方法有什么区别?我的意思是,如果我需要在整个项目中存储一些价值,我应该使用什么方法?

1 个答案:

答案 0 :(得分:0)

主要区别在于config中存储的值需要额外的步骤来读取值。如果在constants.php中定义了var,那么它可以直接使用。

在constants.php中

$my_global = 'foo';

可以直接使用

echo $my_global.'bar';  //outputs "foobar"

如果值存储在config.php中

$config['my_global'] = 'foo';

然后你必须先从config读取值才能使用它。

$my_global = $this->config->item('my_global');
echo $my_global.'bar';  //outputs "foobar"

或直接使用配置检索

echo $this->config->item('my_global').'bar';  //outputs "foobar"

根据定义,常量是在执行脚本期间无法更改的值。如果这是你需要的,那么将值定义为常量。

 define(MY_GLOBAL, 'foo');
 echo MY_GLOBAL.'bar';  //outputs "foobar"

如果值需要在脚本执行期间动态更改,请改用config。

constants.php和配置库都是在框架初始化的早期加载的,因此可以在实例化控制器时使用。