stdClass 无法使用 [] 致命错误

stdClass Cannot use [] fatal error

我正在尝试迭代 stdClass 对象中数组中保存的 img 数据。我已经能够让 stdClass 完成我希望的所有其他事情,试图将图像输出 sequence/iterate 却让我望而却步。我查看了 php.net 并通过堆栈阅读了一个我能理解的答案,这解释了我除了没有成功 google 答案之外的错误。我现在很迷茫,试了很多东西都不成功。

$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 Interface.

要让您的代码正常工作,只需将 foreach 更改为:

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