这两个值都是'2',但我没有得到一个真实的。为什么?为什么'=='在PHP中不起作用?
echo $getuser. "<br />";
echo $userurl. "<br />";
if ($getuser == $userurl) {
echo "true <br />";
}
结果
2
2
这两个值都是'2',但我没有得到一个真实的。为什么?为什么'=='在PHP中不起作用?
echo $getuser. "<br />";
echo $userurl. "<br />";
if ($getuser == $userurl) {
echo "true <br />";
}
结果
2
2
当我尝试
$getuser = 2;
$userurl = 2;
echo $getuser. "<br />";
echo $userurl. "<br />";
if ($getuser == $userurl) {
echo "true <br />";
}
结果:
2
2
true
为我工作。在XAMPP(Windows)和Linux(Apache)上。所以不是有问题可能在配置或一些地方...
呼应出来的,使用var_dump()
,看看到底什么是存储在这些变量:
var_dump($getuser); echo "<br />";
var_dump($userurl); echo "<br />";
我得到'string(1)“2”string(7)“2”' – patrick 2010-04-24 03:52:12
好的我知道他们来自哪里。我从'/ users/3104'中删除一个URL到'3104',所以我使用'$ userurl = substr($ users ['url'],7)来删除7个字符。 “
”;“我尝试使用trim($ userurl,“\ 0”)来摆脱空字节,但它不工作。 –
patrick
2010-04-24 04:03:27
找到解决方案:'$ userurl = ltrim($ users ['url'],“users /”);'谢谢! – patrick 2010-04-24 04:13:10
你可能有一些流浪空格或其他字符这不容易,或者可能不可能通过视觉检测。
使用
var_dump($getuser);
var_dump($userurl);
注重字符串的长度。考虑使用TRIM()如果需要
+1用于专门调用空格。这也是我的直觉。 – 2010-04-24 03:43:43
可包含在虚拟空间中,这样使用
echo $getuser. "<br />";
echo $userurl. "<br />";
if (trim($getuser) == trim($userurl)) {
echo "true <br />";
}
我不知道PHP,但也许其中的一个是字符串,另一个是整数? – house9 2010-04-24 03:34:18
@ house9:PHP会将它们转换为相同的类型以检查它们是否为'==',您必须使用'==='来进行类型特定的比较。 – animuson 2010-04-24 03:36:04
如果上面的代码以$ getuser = 2和$ geturl = 2开始,您会得到一个真正的响应吗? – Smandoli 2010-04-24 03:37:42