PHP Object + Do/While


PHP Object + Do/While

使用Amazon Product API,我试图让所有子类别到达产品类别的根目录。

手动

例如:

查找SanDisk 8Gb microSD的根目录

echo $response->Items->Item->BrowseNodes->BrowseNode->Name;
echo $response->Items->Item->BrowseNodes->BrowseNode->Ancestors->BrowseNode->Name;
echo $response->Items->Item->BrowseNodes->BrowseNode->Ancestors->BrowseNode->Ancestors->BrowseNode->Ancestors->BrowseNode->IsCategoryRoot;

打印:

Tarjetas microSD
Tarjetas de memoria
TRUE

最后一行显示为true,因为它已经到达根类别。

自动(不工作)

$i = 0;
do {
$i++;
$ancestors = 'Ancestors->BrowseNode->';
$repeat[$i] = str_repeat($ancestors, $i) . 'IsCategoryRoot';
$categoriavar[$i] = $response->Items->Item->BrowseNodes->BrowseNode->{$repeat[$i]};
echo $i;
var_dump($categoriavar[$i]);
} while (!isset($categoriavar[$i]));

打印:

1NULL
2NULL
3NULL
4NULL
5NULL
Continues...

我做错了什么?

您可以尝试这样做:

$i = 0;
$temp = $response->Items->Item->BrowseNodes->BrowseNode;
do{
   $i++;
   $categoriacar[$i] = $temp->Ancestors->BrowseNode->IsCategoryRoot;
   $temp = $temp->Ancestors->BrowseNode;
   echo $i;
   var_dump($categoriavar[$i]);
}while($categoriacar[$i] != 'TRUE')