2012-03-03 71 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']);并比较两个长度和字母。