Codeigniter变量

时间:2011-06-20 15:26:35

标签: codeigniter

我是一名codeigniter初学者。我正在使用带有本地服务器的版本2.0.2(php 5.3),我有一个启动控制器,代码是这样的(仅用于测试):

<?php  

class Start extends CI_Controller
{
    var $base;
    function _construct()
    {
        parent::_construct();
        $this->base = $this->config->item('base_url');
    }   
    function hello()
    {
        $data['base'] = $this->base;
        print_r ($data);
    }


}

当我导航到hello函数时,$data['base']数组元素为空。当构造函数使用配置文件中的'base_url'填充它时,为什么会这样?

似乎变量$base在构造函数之外不可用,但我无法理解为什么或如何修复。有人可以提出建议吗?

3 个答案:

答案 0 :(得分:4)

你的构造函数应该是__construct()(2个下划线)。

function __construct()
{
   parent::__construct();
   $this->base = $this->config->item('base_url');
}

另外,正如其他人提到的那样,如果您加载“url_helper”,则可以通过调用base_url来获取base_url()

$this->load->helper('url');
$this->base = base_url();

答案 1 :(得分:1)

你知道吗?

$this->load->helper('url');
$base = base_url();

甚至在视图中:

<?php echo base_url(); ?>

答案 2 :(得分:1)

像这样使用:

class Start extends CI_Controller
{
 private $base = ''; 
 function _construct()
 {
    parent::_construct();

    $this->base = $this->config->item('base_url');
 }

 function hello()
 {
    $data['base'] = $this->base;
    print_r ($data);
 }
}

或者在autoload.php中配置:

$autoload['helper'] = array('url');

然后您可以在代码中的任何位置使用 base_url();