我有一个简单的问题。让我解释一下 我们使用它将数据从控制器传递到视图
function index(){
$data['title'] = 'This is title';
$data['message'] = 'This is message';
$this->load->view('test',$data);
}
这里我们使用关联数组来传递数据 现在再次使用此函数并使用索引数组而不是关联数组
function index(){
$data[] = 'This is title';
$data[] = 'This is message';
$this->load->view('test',$data);
}
现在在View中这不起作用。
echo $data[0];
echo '<br>';
echo $data[1];
我只想知道为什么这不起作用。在用户指南中,我从未读过关联数组是必要的。
答案 0 :(得分:1)
解析时视图数据将转换为变量。 PHP的extract()
函数给出的类似结果。例如:
$data['title'] = 'This is the title';
可以$title
$data['title']
直接访问。事实上,如果你查看来源,你会发现它确实使用了extract()
并且你的情况发生了类似的转换,但由于变量$0
和$1
无效所以它们不是可用。
坚持字符串索引。如果这不是一个选项,那么您可能希望在文本之前添加前缀,如:
$data['d0'] = 'This is the title';
阅读其引用的手册here。但是,您可以传递数组而不是字符串,并提供您想要的确切结果。
$data['data'] = array('This is the title', 'This is the description');
现在,您可以使用$data[0]
和$data[1]
进行访问。