我从一个服务接收到这个:
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++;
}
正如预期的那样,由于结果是一个对象,它将循环一次,返回一个值,而不是像预期的那样返回两个值。
由于它是tipoproductovo对象的列表,我试图:
foreach ($res->ObterTipoProdutoParaWebSiteResult->TipoProdutoVO as $tipoproduto)
但是我得到这个错误:
致命错误:不能使用stdClass类型的对象作为数组/opt/lampp/htdocs/lglentes/application/controllers/pedido.php30
我该如何解决这个问题?
在我的脑海里,你用错了"foreach "。你把它当作"for"。试试这个:
foreach ($res->ObterTipoProdutoParaWebSiteResult as $tipoproduto)
{
$tipoProdutoVO = new TipoProdutoVO();
$tipoProdutoVO->ID = $tipoproduto->ID;
$tipoProdutoVO->DESCRICAO = $tipoproduto->DESCRICAO;
$lista_tipo_produtos[] = $tipoProdutoVO;
}
在我看来,你想做的是:
foreach ($res->ObterTipoProdutoParaWebSiteResult->TipoProdutoVO as $tipoproduto)
{
$tipoProdutoVO = new TipoProdutoVO();
$tipoProdutoVO->ID = $tipoproduto->ID;
$tipoProdutoVO->DESCRICAO = $tipoproduto->DESCRICAO;
$lista_tipo_produtos = $tipoProdutoVO;
}
循环遍历对象属性' tipoproductovo '上设置的数组