我正在尝试将变量从控制器传递给视图。我有一些代码,但为了解问题是什么,我简单了。这是我的控制器:
<?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
怎么了?
感谢。
答案 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;