多次尝试web服务-PHP

多次尝试web服务-PHP,php,web-services,Php,Web Services,我正在构建一个与web服务交互的函数 在web服务没有响应的情况下,我希望在注册失败之前重试2到3次,以防出现临时故障 使用PHP实现这一点的最佳技术是什么 $i = 0; do { $response = getResponseFromWebService(); if ($i++ >= 3) { throw new Exception('Web service unavailable'); } } while (!$response); 不过,如

我正在构建一个与web服务交互的函数

在web服务没有响应的情况下,我希望在注册失败之前重试2到3次,以防出现临时故障

使用PHP实现这一点的最佳技术是什么

$i = 0;
do {
    $response = getResponseFromWebService();
    if ($i++ >= 3) {
        throw new Exception('Web service unavailable');
    }
} while (!$response);

不过,如果第一次不起作用,第二次或第三次也可能不起作用。除非您使用的是一个非常喜怒无常的web服务,否则您可能应该寻找另一个。

for($i=0,$success=FA:SE;$i<3;$i++){if(contact_service_successfully()){$success=TRUE;break;}}if(!$success){handle_error()}
逻辑是创建一个函数来执行与web服务的连接。如果失败,只需在函数本身内调用该函数,并让一个计数器变量在经过x次尝试后停止检查。参考DaveRandom的注释,如果成功,您可以使用break命令结束循环。
If
需要
If(++$i>=3){}
不需要。这取决于你想要多少次迭代……没错,但这会让行为更直观一些。。。您的版本将循环4次,通常情况下,如果我编写
3
我想要
3
迭代。但我同意你的观点。