php框架,数据在var_dump中工作但在echo中不起作用

时间:2011-06-16 02:15:32

标签: php codeigniter

我现在很困惑,我正在使用代码点火器php框架并将数组传递给视图,因此我可以从视图中访问该变量。

所以我在这个视图中

echo var_dump($data["mykey"]);

我得到了

string '43' (length=2)

但是当我尝试

echo $data["mykey"];

我得到了

A PHP Error was encountered
Severity: Notice
Message: Undefined index: "mykey"
Line Number: 8

???

编辑(问题似乎是当代码点火器试图从视图返回以将其作为字符串传递回控制器时,这是我的结论,因为如果我在视图的末尾放置一个模具就可以了)

$data数组是这样的,在我看来,我尝试echo $data["myfield"][0]["data"]

array
  'myfield' => 
    array
      0 => 
        array
          'data' => string '1'
  'myfieldb' => 
    array
      0 => 
        array
          'data' => string '2'

2 个答案:

答案 0 :(得分:3)

控制器中的

class controller extends CI_Controller {

function hello() {
  $data['world'] = 'world';
  $this->load->view('test');
 }
}
在您的视图中

<html>
<head></head>
<body>
Hello <?php echo $world ?>;
</body>
</html>

传递给视图的数组键将转换为变量。

因此,要在视图中访问$data['mykey'],您必须访问$mykey而不是$data['mykey']

<html>
<head></head>
<body>
Your key is: <?php echo $mykey ?>;
</body>
</html>

这是user_guide

答案 1 :(得分:0)

当我重新创建你在PHP中提供的内容时

<?php

    $array = array(
              'myfield' => 
                array(
                  0 => 
                    array(
                      'data' => '1')),
              'myfieldb' => 
                array(
                  0 => 
                    array(
                      'data' => '2')));

    echo $array['myfield'][0]['data'];

?>

它很好。

您获得的错误意味着指定的密钥不存在。我会做一个print_r($data)并看看你得到了什么。