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

Undefined Index for ... existing index?

提问人:Dr.Kameleon 提问时间:7/20/2013 最后编辑:Dr.Kameleon 更新时间:7/20/2013 访问量:332

问:

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

这是我的代码:

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, '.', '');

    }
}

现在,问题来了:

  • 当 NO 传递给控制器时,整个工作正常。$pattern
  • 当我传递一些参数时,例如(pattern = 4),我收到以下错误:mysite.com/project/results/45/4

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

奇怪的是,两者都“读取”得很好。$id$pattern

当我在有关此的行之前时,我得到的结果:print_r$projundefined index

数组 ( [id] => 21240 [email] => [email protected] [url] => somewebsite.com [domains] => another_domain [progress] => 198 [total] => 199 [别名] => 测试项目 #3 [状态] => 完成)

正如你自己所看到的,索引就完美地存在。progress

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


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

array(8) {
  ["id"]=>
  string(5) "21240"
  ["email"]=>
  string(20) "[email protected]"
  ["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"
php 数组 codeigniter undefined-index

评论

0赞 Mohammad Naji 7/20/2013
如果写入而不是 ?var_dump($proj, $proj['progress']);print_r($proj);
0赞 Dr.Kameleon 7/20/2013
@smhnaji看一看,我重新编辑了原来的问题。
0赞 Dr.Kameleon 7/20/2013
另请注意,这不仅仅是它找不到。它看不到任何索引... :Sprogress
0赞 Mohammad Naji 7/20/2013
我知道它很脏,但是如果你在下一行的函数中使用$progress会发生什么?$progress = $proj['progress'];
0赞 Bora 7/20/2013
只有未定义的索引:进展?还是总索引未定义错误?

答:

0赞 Bora 7/20/2013 #1

它应该是这样的:

mysite.com/CONTROLLER/results/45/4

评论

0赞 Dr.Kameleon 7/20/2013
我只是在问题中输入错误。正如你所说。