用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2298|回复: 6
收起左侧

[已解决] 有关访问类的初始化函数里值的问题

[复制链接]
发表于 2011-8-12 16:49:23 | 显示全部楼层 |阅读模式
本帖最后由 phoenixg 于 2011-8-12 22:05 编辑

问题是红字:

PHP复制代码
 
class Home extends CI_Controller {
 
    function __construct()
    {
        parent::__construct();
        $this->load->helper('MY_others');
       
        if (whether_logged_in()==TRUE)
        {
            $data['login'] = TRUE;
        }
        else
        {
            $data['login'] = FALSE;
        }
    }
   
    public function index()
    {
        [color=Red]//怎样访问到__construct里的$data
        //加载页头
        $this->load->view('includes/v_header',[color=Red]$data[/color]);
    }
 
复制代码


怎样访问到__construct里的$data
发表于 2011-8-12 18:05:42 | 显示全部楼层
答案在红字里。

PHP复制代码
class Home extends CI_Controller {
 
    var $data; // 注意这里,这是神马?
 
    function __construct()
    {
        parent::__construct();
        $this->load->helper('MY_others');
       
        if (whether_logged_in()==TRUE)
        {
            $this->data['login'] = TRUE;
        }
        else
        {
            $this->data['login'] = FALSE;
        }
    }
   
    public function index()
    {
        [color=Red]//怎样访问到__construct里的$data
        //加载页头
        $this->load->view('includes/v_header',$this->data['login']);
    }
 
复制代码

请好好学习php的变量作用域这个话题。
发表于 2011-8-12 18:41:57 | 显示全部楼层
saturn 发表于 2011-8-12 18:05
答案在红字里。

saturn你回答的亮了

评分

参与人数 1威望 -1 收起 理由
saturn -1 大JJ,技术区别灌水。

查看全部评分

 楼主| 发表于 2011-8-12 21:14:51 | 显示全部楼层
saturn 发表于 2011-8-12 18:05
答案在红字里。

感谢Saturn大叔精辟的回答!^^
 楼主| 发表于 2011-8-12 21:29:31 | 显示全部楼层
本帖最后由 phoenixg 于 2011-8-12 21:30 编辑

冒着被鄙视的风险再问下,还是访问不到

PHP复制代码
 
class Home extends CI_Controller {
   
    var $data;
 
    function __construct()
    {
        parent::__construct();
        $this->load->helper('MY_others');
       
        if (whether_logged_in()==TRUE)
        {
            $this->data['login'] = TRUE;
        }
        else
        {
            $this->data['login'] = FALSE;
        }
    }
   
    public function index()
    {
        //怎样访问到__construct里的$data
        var_dump($this->data);
        //加载页头
        $this->load->view('includes/v_header',$this->data);//换成$this->data['login']也不行
 
复制代码


视图v_header.php
PHP复制代码
 
<small>
    <?php if ($login==TRUE):?><!--这是第15行-->
        <?=anchor('member/logout','注销')?>
    <?php else:?>
        <?=anchor('member/login','登陆')?>
    <?php endif;?>
</small>
 
复制代码


错误提示:
A PHP Error was encounteredSeverity: Notice
Message:  Undefined variable: login
Filename: includes/v_header.php
Line Number: 15




 楼主| 发表于 2011-8-12 22:04:36 | 显示全部楼层
哈哈,哥搞出来了,应该是:

PHP复制代码
 
 
class Home extends CI_Controller {
   
    var $data;
 
    function __construct()
    {
        parent::__construct();
        $this->load->helper('MY_others');
       
        if (whether_logged_in()==TRUE)
        {
            $this->data['login'] = TRUE;
        }
        else
        {
            $this->data['login'] = FALSE;
        }
    }
   
    public function index()
    {
 
        $data['login'] = $this->data['login'];
       
        //加载页头
        $this->load->view('includes/v_header',$data);
 
复制代码


 楼主| 发表于 2011-8-12 22:05:24 | 显示全部楼层
封帖,谢谢两位大牛!

本版积分规则