2

我有一个简单的问题。让我解释一下
我们使用它来将数据从控制器传递到视图

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

现在在视图中这不起作用。

echo $data[0];
echo '<br>';
echo $data[1];

我只想知道为什么这不起作用。在用户指南中,我从未读过关联数组是必要的。

4

1 回答 1

1

视图数据在解析时转换为变量。extract()PHP 的功能给出了类似的结果。例如:

$data['title'] = 'This is the title';

将可以直接访问,而$title 不是 $data['title']。实际上,如果您查看源代码,您会发现它确实使用extract()并且类似的转换发生在您的案例中,但是由于变量$0$1无效,因此它们不可用。

坚持字符串索引。如果这不是一个选项,那么您可能希望在文本之前添加一些前缀,例如:

$data['d0'] = 'This is the title';

请阅读此处引用的手册。但是,您可以传递一个数组而不是字符串,并给出您想要的确切结果。

$data['data'] = array('This is the title', 'This is the description');

现在,您将可以使用$data[0]and访问它$data[1]

于 2012-11-01T06:15:56.557 回答