2012-03-03 3 views
0

У меня есть странная проблема. Я проверить строку PHP, как это:Ошибка строки PHP равна нулю

На Page1

$_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

Пожалуйста, сделайте 'var_dump ($ myVar, $ matchString);' прямо перед вашим if-statement, это, вероятно, проливает свет на причину вашей проблемы. –

+2

Используйте 'var_dump ($ str);', чтобы убедиться, что они действительно идентичны; нет посторонних строк перевода и т. д. Также используйте некоторые пробелы и отступы. – mario

+0

Имеет строку символов unicode? – dotoree

ответ

2

Возможно, что существуют пробельные пробелы (пробел, табуляция, новая линия).

Попробуйте

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

Ведение var_dump ($ _SESSION [ 'тест']); может также выявить проблему.

1

Вы уверены, что ваша строка действительно одинакова? попробуйте var_dump ($ _ SESSION ['test']); и сравните две длины и буквы.

Смежные вопросы