所以我循环到surveyGizmo,检索结果。由于每个cURL响应只允许500个响应,因此我必须保持循环,直到响应为空。因此,我的代码的大致轮廓如下所示:
$pageIndex = 1;
while ($pageIndex) {
$outputGizmo = getSurveyResponse($method = 'GET', $pageIndex);
if ($outputGizmo == '') {
break;
}
foreach($outputGizmo->data as $surveyResponse) {
$firstName = $surveyResponse->{'[question(2)]'};
$lastName = $surveyResponse->{'[question(10)]'};
$email = $surveyResponse->{'[question(3)]'};
$phone = $surveyResponse->{'[question(5)]'};
$postcode = $surveyResponse->{'[question(6)]'};
// Add to local database will happen here
}
$pageIndex += 1;
}
我在循环中迷失了,当getSurveyResponse函数返回空时,我只想终止while循环。我选择了空,因为如果没有更多的回复,它会返回一个空白页面。
更新:
object(stdClass)#1 (6) {
["result_ok"]=>
bool(true)
["total_count"]=>
string(1) "1"
["page"]=>
string(1) "2"
["total_pages"]=>
int(1)
["results_per_page"]=>
string(3) "100"
["data"]=>
array(0) {
}
}
答案 0 :(得分:1)
当没有更多结果可用时,您获得的实际上不是空字符串,而是数据有限的对象。由于空响应将$data
属性作为具有零元素的数组返回,因此您只需要测试empty($outputGizmo->data)
以退出循环:
来自var_dump()
:
["data"]=>
array(0) {
}
数组为空时中断。其余的代码看起来好像可以正常工作。
if (empty($outputGizmo->data)) {
break;
}