【发布时间】:2015-11-22 11:57:42
【问题描述】:
我注意到的一些问题可以解决问题:
如果我返回 $this->_data 而不是 $this->_data[0] - 然后使用 $object->data()[0],它会按预期工作......但是,我想在函数中返回 [0]。
在您开始说这是重复之前 - 这个问题与大多数其他有关此错误的问题不同。
在我的班级中尝试访问 $this->_data[0] 时出现以下错误:
Cannot use object of type stdClass as array
这是触发错误的函数/行:
public function data(){
return $this->_data[0]; //<- line 75
}
据我了解,当我尝试像使用数组一样使用对象时会发生此错误。但是,当我var_dump($this->_data) 时,我得到以下结果:
array(1) {
[0]=> object(stdClass)#34 (10) {
["uid"]=> string(1) "0"
["nid"]=> string(3) "374"
["id"]=> string(8) "YicnaxYw"
["txt_content"]=> NULL
["path"]=> string(32) "/uploads/images/png/YicnaxYw.png"
["image"]=> string(1) "1"
["timestamp"]=> string(10) "1448192959"
["file_ext"]=> string(3) "png"
["file_type"]=> string(9) "image/png"
["originalFilename"]=> string(23) "2015-11-22_12-49-17.png"
}
}
很明显,这个变量是array(1) 类型,带有[0] 元素..
谁能告诉我我做错了什么?
提前致谢。
@Xeli $this->_data[0]->nid 导致同样的错误
致命错误:在 75 行的 /home3/ramzes/includes/classes/UploadItem.php 中无法使用 stdClass 类型的对象作为数组
UploadItem.php:75
public function data(){
return $this->_data[0]->nid;
}
$this->_data[0] 是一个带有查询结果的 fetchAll(PDO::FETCH_OBJ) 对象
【问题讨论】:
-
能否请您发布触发错误的完整代码行?
-
你确定这样的东西不起作用吗? echo $this->_data[0]->nid;
-
检查编辑!我不知道为什么会发生这个错误,因为自昨天和昨天以来我并没有真正改变太多代码,这完全相同的事情就像它应该的那样工作
-
如果我将 [0] 移动到函数的结果中,它的工作方式就像它应该的那样。检查帖子顶部的编辑。知道为什么会这样吗?
-
您是否多次调用查询?也许对 data() 的第一次调用是一个空集,因此 $this->_data 是空的,而在第二次调用中 $this->_data[0] 已设置,因此不会发生错误