PHP访问数组内Book对象报错,如何获取指定单元格的id值?
问题原因与解决方法
错误原因:$books 数组的每个元素都是 Book 类的对象,并非数组,因此你用数组的[]语法访问属性时就会触发对应的类型错误。
可行解决方法
方法1:直接使用对象属性访问语法(首选方案)
PHP中访问对象的公开属性使用箭头运算符->,写法如下:
echo $books[0]->id;
直接就能拿到你要的ID值ADW-STD-P5。
方法2:将对象强制转为数组后访问(特殊场景用)
如果你确实需要用数组的方式读取属性,可以先把对象强制转换为数组:
// 先把单个Book对象转为数组 $book0 = (array)$books[0]; // 再用数组语法访问 echo $book0['id'];
方法3:调用类的getter方法(属性非公开时用)
如果后续你遇到Book类的id属性是私有/受保护的,无法直接访问的情况,可查看类定义中是否提供了读取ID的公开方法,通常命名为getId(),写法如下:
echo $books[0]->getId();
内容的提问来源于stack exchange,提问作者Ahmed Nazmy
相关产品推荐
相关产品推荐

