所以我循环到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) {
}
}
当没有更多的结果可用时,您得到的实际上不是一个空字符串,而是一个数据有限的对象。由于空响应以零元素数组的形式返回$data
属性,因此只需测试empty($outputGizmo->data)
即可退出循环:
从您的var_dump()
:
["data"]=>
array(0) {
}
数组为空时中断。您的代码的其余部分看起来就像它将按原样工作。
if (empty($outputGizmo->data)) {
break;
}