今天在做富士康的出货接口时的代码情景是,一直查询接口,如果接口返回的不是成功或者失败,则继续查询接口,所以我就写了一个自己调用自己的函数
public function clorder(){
header("Content-type:text/html;charset=utf-8");
$url = url;
$chdatawc['VM_NO'] = 11;
$chdatawc['TRADE_NO'] = 22;
$outputwc = $this->http_post($url,$chdatawc);
global $aa ;
if($outputwc == "PT_FINISHED"){
$aa = "s";
}elseif($outputwc == "PT_ERROR"){
$aa = "f";
}else{
sleep(2);
$this->clorder();
}
return $aa;
}
查询的状态有
PT_CREATE 创建中
PT_SHIPPING 出货中
PT_FINISHED 出货成功
PT_ERROR 出货失败之前没加全局变量的话,返回的一直是第一个状态,其实已经到第三个了,但是return输出的是null。研究了一小时,发现是少了个全局变量。后来加了 global 后,就可以正常的使用了。