2012-03-03 89 views
0

我有一個奇怪的問題。我已經檢查PHP字符串是這樣的:PHP字符串等於檢查失敗

在第1頁

$_SESSION['test']=<a value from a row fetched from db> 

Page2上

$myVar=$_SESSION['test']; 
echo $myVar; 

if($myVar=="This is the match string"){ 
echo "Matched"; 
}else{ 
echo "Not Matched"; 
} 

我可以看到,$ myVar的呼應了,我再次檢查相同的字符串「這是匹配字符串「,但它仍然進入其他。我試過:

$myVar=(string)trim($_SESSION['test']); 

但它仍然進入其他。可能是什麼問題?任何想法?

+1

請在if語句之前執行'var_dump($ myVar,$ matchString);'這可能會對您的問題的原因有所瞭解。 – 2012-03-03 18:21:53

+2

使用'var_dump($ str);'來驗證它們是否真的相同;沒有多餘的換行符等。也使用一些空格和縮進。 – mario 2012-03-03 18:22:34

+0

有字符串unicode字符? – dotoree 2012-03-03 18:23:00

回答

2

可能存在尾隨空格(空格,製表符,換行符)。

嘗試

$myVar = trim($_SESSION['test']); 

否則的var_dump($ _SESSION [ '測試']);也可能會揭示問題。

1

你確定你的字符串真的相等嗎? 嘗試var_dump($ _ SESSION ['test']);並比較兩個長度和字母。