2014-07-16 27 views
-1

我正在從這樣的web服務解碼JSON,對於$ rspcode,我將轉換爲整型並在switch語句中檢查響應是否爲00(這是一個整數)。請我做錯了,因爲我沒有得到期望的輸出;JSON解碼轉換爲整數,但沒有給出預期的結果

$context = stream_context_create($opts); 

// Open the file using the HTTP headers set above 
$response = file_get_contents($url, false, $context); //done 
$decoder = json_decode($response); 
$rspcode  = $decoder->{'ResponseCode'}; 
$rspamount  = $decoder->{'Amount'}; 
$rspcardno  = $decoder->{'CardNumber'}; 
$rspmerchant = $decoder->{'MerchantReference'}; 
$rsppayref  = $decoder->{'PaymentReference'}; 
$rsprefnumber = $decoder->{'RetrievalReferenceNumber'}; 
$rsptransdate = $decoder->{'TransactionDate'}; 
$rspdescription = $decoder->{'ResponseDescription'}; 



switch(intval($rspcode)) 
    { 
     case "00": 
    //do something 
    break; 
    default: 
    break; 
    } 
+2

'00'不是整數。 '0'是。 –

+0

@NiettheDarkAbsol這是服務正在返回的值,他們期望它被視爲int.Don't知道爲什麼 – pressharp

+1

那麼你使用'intval'然後'case'ing它對字符串。你真的認爲這會起作用嗎? –

回答

0

intval('00')將是0,而不是00。你也可以提高你的情況,但沒有把它串,但由於交換機採用比較寬鬆和0"0"技術上仍工作

相關問題