..的未定义索引..现有索引


Undefined Index for ... existing index?

好吧,这不仅仅是奇怪。。。

这是我的代码:

public function results($id,$pattern=3)
{
    $this->load->library('session');
    if (!$this->session->userdata('logged_in'))
    {
        $this->session->set_flashdata('return_url',$this->uri->uri_string());
        redirect('log/in','refresh');
    }
    else
    {
        $this->load->model('projects');
        $proj = (array)$this->projects->getProjectById($id);
        print_r($proj);
        $progressPercentage = number_format((float)( ($proj['progress'] * 100) / $proj['total'] ), 2, '.', '');
    }
}

现在,问题来了:

  • 当没有$pattern被传递到控制器时,整个事情工作正常
  • 当我传递一些参数时,比如mysite.com/project/results/45/4(pattern=4),我会得到以下错误:

    A PHP Error was encountered
    Severity: Notice
    Message: Undefined index: progress
    Filename: controllers/project.php
    Line Number: 75
    

奇怪的是,$id$pattern都"读"得很好。

当我在关于undefined index的行之前print_r$proj时,我得到的结果是:

数组([id]=>21240[电子邮件]=>my@gmail.com[url]=>somewebsite.com[域]=>another_domain[进度]=>198[总计]=>199[别名]=>测试项目#3[状态]=>完成)

正如你自己清楚地看到的,progress索引就在那里。

那么,问题可能是什么呢?这是什么奇怪的已知CI错误吗?


这就是var_dump($proj,$proj['progress']);给出的:

array(8) {
  ["id"]=>
  string(5) "21240"
  ["email"]=>
  string(20) "my@gmail.com"
  ["url"]=>
  string(27) "somewebsite.com"
  ["domains"]=>
  string(84) "another_domain"
  ["progress"]=>
  string(3) "198"
  ["total"]=>
  string(3) "199"
  ["alias"]=>
  string(15) "Test Project #3"
  ["status"]=>
  string(8) "complete"
}
string(3) "198"

它应该像:

mysite.com/CONTROLLER/results/45/4