stdClass不能使用[]致命错误

时间:2015-01-15 15:32:04

标签: php arrays object foreach stdclass

我试图在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'] . '"/>')) ;}

2 个答案:

答案 0 :(得分:1)

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">

答案 1 :(得分:0)

您无法以数组形式访问对象。如果您需要,您需要实现ArrayAccess Interface

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

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