得到真烦人的错误:“致命错误:无法使用字符串数组中的偏移...”(getting really an

2019-11-05 09:24发布

我如何摆脱这种错误的?

码:

        function get_green_entities($c,$array){
            $thisC = &$this->output[$this->sessID];    
            $timeDif = 4;
            $cols = count($thisC['clientCols'])+1;
            if(!isset($array['Entity ID'])){
                return get_grey($c);
            }
            if(!isset($thisC['CURRTIME'][$array['Entity ID']])){
                $thisC['CURRTIME'][$array['Entity ID']] = 
                      (isset($array['timestamp'])?$array['timestamp']:null);
            }
        }

我打在这最后if语句的行错误:

$thisC['CURRTIME'][$array['Entity ID']] = 
                          (isset($array['timestamp'])?$array['timestamp']:null);

我知道$array['Entity ID']=4

我该如何解决?

谢谢 :-)

更新3
我删除了垃圾场,因为他们是一个有点敏感

Answer 1:

这里只有三种可能性或者$thisC$thisC['CURRTIME']$array是不是阵列...

您可以更改函数签名,以防止后者:

function get_green_entities($c, array $array)

如果$array的问题,它会调用函数时被触发。 所以,现在如果问题仍然存在,你知道它有事情做与$thisC

调用var_dump上的错误前行应该能很明显的问题是什么。

考虑的行为:

$array = 'test';

if (!isset($array['foo']['bar']))
  $array['foo']['bar'] = true; // error is triggered here

所以,我觉得这个问题是$thisC['CURRTIME']并不总是像你期望的数组。



文章来源: getting really annoying error: “Fatal error: Cannot use string offset as an array in…”