sostart 发表于 2012-1-14 08:01:29

发现一配置文件载入的BUG

发现一个算不算bug?的bug..

灵感来源于
http://codeigniter.org.cn/forums/thread-11460-1-1.html这个帖子的"$this->load->config('config');"这句

index.php中可以修改配置文件里的默认配置,你也可以通过配置类动态修改默认配置
上面两种情况你用到了任何一种,那么千万别再 $this->load->config('config'); 因为CI会再读一次config文件,并覆盖掉你已经动态修改过的配置

配置类载入配置文件时会记录已载入的配置文件,不会重复载入,但是 application/config/config.php不是通过配置类载入的,而是通过get_config()载入的

测试代码:

                //默认的配置 0
                echo $this->config->item('log_threshold').'<br>';
               
                //动态修改配置为 2
                $this->config->_assign_to_config(array('log_threshold'=>2));
                echo $this->config->item('log_threshold').'<br>';
               
                //bug来了 被默认配置覆盖了 0
                $this->config->load('config');
                echo $this->config->item('log_threshold').'<br>';
               
                //再次设置为 2, 两个2了
                $this->config->_assign_to_config(array('log_threshold'=>2));               
                echo $this->config->item('log_threshold').'<br>';

                //再次载入config,这次则没有覆盖2
                $this->config->load('config');
                echo $this->config->item('log_threshold').'<br>';
                exit();


页: [1]
查看完整版本: 发现一配置文件载入的BUG