codeigniter视图中的变量值

时间:2013-01-31 11:18:38

标签: php codeigniter

我正在尝试将变量从控制器传递给视图。我有一些代码,但为了解问题是什么,我简单了。这是我的控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Welcome extends CI_Controller {

        $p=2;

        public function index()
        {
            $this->load->view('welcome_message',$p);
        }
    }

?>

在视图中声明变量p。

<div id="container">
    <h1>Welcome to CodeIgniter!</h1>
    <?php echo $p?>
</div>

当我尝试显示$ p值时,我得到了错误:

错误

Parse error: syntax error, unexpected '$p' (T_VARIABLE), expecting function (T_FUNCTION) in C:\wamp\www\..\application\controllers\welcome.php on line 20

怎么了?

感谢。

2 个答案:

答案 0 :(得分:3)

首先需要将变量作为数组传递(check out the docs)。

$data = array(
               'title' => 'My Title',
               'heading' => 'My Heading',
               'message' => 'My Message'
          );

$this->load->view('welcome_message', $data);

$ p已被声明超出函数范围,因此;

public function index() {
   $p = 2;
   $this->load->view('welcome_message',array('p' => $p));
}

class Welcome extends CI_Controller {

public $p=2;

public function index()
{
    $this->load->view('welcome_message',array('p' => $this->p));
}
}

答案 1 :(得分:0)

您应该在控制器的构造函数中声明$p

class Welcome extends CI_Controller {

    function __construct() {
    parent::__construct();
        $this->p = 2;
    }

    public function index()
    {
        $data['p'] = $this->p;
        $this->load->view('welcome_message',$data);
    }
}

&GT;