今天在做富士康的出貨接口時的代碼情景是,一直查詢接口,如果接口返回的不是成功或者失敗,則繼續查詢接口,所以我就寫了一個自己調用自己的函數
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 後,就可以正常的使用了。