我是从服务中收到的:
stdClass Object (
[TipoProdutoVO] => Array (
[0] => stdClass Object (
[entityStatus] => CURRENT [ID] => 23 [TIPO] => [DESCRICAO] => LENTE ACABADA [PARA_VENDA] => [INATIVO] => )
[1] => stdClass Object (
[entityStatus] => CURRENT [ID] => 32 [TIPO] => [DESCRICAO] => LENTES FABRICADAS [PARA_VENDA] => [INATIVO] => )
)
)
包含strClass对象的数组。
我需要循环这些值并设置一些对象,如:
foreach ($res->ObterTipoProdutoParaWebSiteResult as $tipoproduto)
{
$tipoProdutoVO = new TipoProdutoVO();
$tipoProdutoVO->ID = $tipoproduto[$x]->ID;
$tipoProdutoVO->DESCRICAO = $tipoproduto[$x]->DESCRICAO;
$lista_tipo_produtos[$x] = $tipoProdutoVO;
$x++;
}
正如预期的那样,由于结果是一个对象,它将循环一次,返回一个值,而不是预期的两个。
因为它是我尝试过的TipoProdutoVO对象列表:
foreach ($res->ObterTipoProdutoParaWebSiteResult->TipoProdutoVO as $tipoproduto)
但是我收到了这个错误:
致命错误:无法使用stdClass类型的对象作为数组 /opt/lampp/htdocs/lglentes/application/controllers/pedido.php在线 30
我该如何解决这个问题?提前谢谢。
答案 0 :(得分:2)
在我的头顶,你正在使用“foreach”错误。你正在使用它作为“for”。 试试这个:
foreach ($res->ObterTipoProdutoParaWebSiteResult as $tipoproduto)
{
$tipoProdutoVO = new TipoProdutoVO();
$tipoProdutoVO->ID = $tipoproduto->ID;
$tipoProdutoVO->DESCRICAO = $tipoproduto->DESCRICAO;
$lista_tipo_produtos[] = $tipoProdutoVO;
}
答案 1 :(得分:0)
在我看来,您正在尝试做的是以下内容:
foreach ($res->ObterTipoProdutoParaWebSiteResult->TipoProdutoVO as $tipoproduto)
{
$tipoProdutoVO = new TipoProdutoVO();
$tipoProdutoVO->ID = $tipoproduto->ID;
$tipoProdutoVO->DESCRICAO = $tipoproduto->DESCRICAO;
$lista_tipo_produtos = $tipoProdutoVO;
}
这将循环遍历在对象属性'TipoProdutoVO'
上设置的数组