stdClass 不能使用 [] 致命错误


stdClass Cannot use [] fatal error

我正在尝试迭代 stdClass 对象中数组中保存的 img 数据。我已经能够让 stdClass 做我希望的其他一切,试图让图像排序/迭代对我来说是逃避的。我已经查看了 php.net 并通读了堆栈以获得我可以理解的答案,这解释了我除了无法成功谷歌答案之外遇到的错误。我现在很迷茫,尝试了很多很多事情都不会成功。

$myObj = new stdClass;
$myObj->image=['x01.jpg', 'x02.jpg', 'x03.jpg', 'x04.jpg', 'x05.jpg'];
$myObj->name="asdfg";
$myObj->phone="exaasdfaspg";
$myObj->email="exsdfg";
$myObjArray[] = $myObj;
foreach($myObjArray as $myObj)
{ echo '<img src="_imgResevior/' . $myObj->image[] . '"/>' ;}
#{ echo (in_array('<img src="_imgResevior/' . $myObj->image['image'] . '"/>')) ;}
foreach($myObjArray as $myObj)
{ echo '<img src="_imgResevior/' . $myObj->image[] . '"/>' ;}

应该是

foreach($myObj->image as $myObjArray )
{ echo '<img src="_imgResevior/' . $myObjArray . '"/>' ;}

输出的 HTML 代码是

<img src="_imgResevior/x01.jpg">
<img src="_imgResevior/x02.jpg">
<img src="_imgResevior/x03.jpg">
<img src="_imgResevior/x04.jpg">
<img src="_imgResevior/x05.jpg">

不能以数组形式访问对象。如果你想要这个,你需要实现 ArrayAccess 接口。

要使您的代码正常工作,只需将foreach更改为以下内容:

foreach($myObj->image as $img)
{ 
  echo '<img src="_imgResevior/' . $img . '"/>';
}