phoenixg 发表于 2011-8-12 16:49:23

有关访问类的初始化函数里值的问题

本帖最后由 phoenixg 于 2011-8-12 22:05 编辑

问题是红字:


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()
    {
      //怎样访问到__construct里的$data
      //加载页头
      $this->load->view('includes/v_header',$data);
    }


怎样访问到__construct里的$data

saturn 发表于 2011-8-12 18:05:42

答案在红字里。

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
      //加载页头
      $this->load->view('includes/v_header',$this->data['login']);
    }

请好好学习php的变量作用域这个话题。

jeongee 发表于 2011-8-12 18:41:57

saturn 发表于 2011-8-12 18:05 static/image/common/back.gif
答案在红字里。




saturn你回答的亮了

phoenixg 发表于 2011-8-12 21:14:51

saturn 发表于 2011-8-12 18:05 static/image/common/back.gif
答案在红字里。




感谢Saturn大叔精辟的回答!^^

phoenixg 发表于 2011-8-12 21:29:31

本帖最后由 phoenixg 于 2011-8-12 21:30 编辑

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


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

<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




phoenixg 发表于 2011-8-12 22:04:36

哈哈,哥搞出来了,应该是:



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);


phoenixg 发表于 2011-8-12 22:05:24

封帖,谢谢两位大牛!
页: [1]
查看完整版本: 有关访问类的初始化函数里值的问题