2012-01-12 64 views
0

我正在寫一個比較簡單的if語句來處理web服務PHP麻煩與字符串比較

的響應下面的代碼將輸出多數民衆贊成要返回的數據的類型和它的價值:

$response = $client->__getLastResponse(); 
echo $response; 
echo gettype($response); 

對於正確的反應,我得到「真正的字符串」
對於不正確的響應,我得到「錯誤的字符串」

所以我需要一個if語句來處理它是否是真的還是假的:

if($response == "true"){ 
    echo "Logged In"; 
} else { 
    echo "Not Logged In"; 
} 

作出的任何反應,我得到的,我總是收到「未登錄」

我已經試過了===運營商還,但無濟於事。

有人可以幫忙嗎?

+0

如果你得到'「真正的字符串」'它意味着響應變量包含'「true」'(有一個最後的空格),而不是'「true」'。另外,'var_dump($ response)'是顯示值和類型的更簡潔的方式 - 你能告訴我們它輸出的是什麼嗎? – 2012-01-12 12:52:42

+0

字符串(536)「true」這確實意味着有一個空間。 – 2012-01-12 13:03:03

+0

我已經回答了。它是真的'真正的字符串'你得到或只是'真'作爲一個字符串? – 2012-01-12 13:03:30

回答

2

對於正確的反應,我得到「真正的字符串」 對於不正確的響應,我得到「錯誤的字符串」

只要是你實際的代碼,你有echo $response . gettype($response)這將產生「真正的字符串」 , 對?如果是這樣,「真」之後有一個空格。嘗試修剪響應:

<?php 
$response = $client->__getLastResponse(); 
if(strtolower(trim($response)) === 'true') { 
    echo 'response is true.'; 
} 

除此之外,調試很容易使用var_dump,因爲這將顯示在值和字符串的總長度報價,使得額外的空間彈出更容易點。

+1

你的過多的空白使用情況是相當醜陋的。 – ThiefMaster 2012-01-12 12:54:47

+1

@ThiefMaster Aww,感謝您花時間與我分享。實際上,我發現它更具可讀性。 – 2012-01-12 13:03:40

+0

對於像我這樣的人來說,它太過分了。除非必須,否則我不使用空間。在我的回答中看到代碼示例 – 2012-01-12 13:06:44