我声明一个var$t
并将其赋值为0。然后重新分配$t
一个新值test
。然后看来这$t
都是0
AND test
。这是代码:
$t = 0;
$t = "test";
if($t == 0 && $t == "test"){
echo "unexpected";
}else{
echo "expected";
}
输出为:
"unexpected"
有人可以解释一下这是怎么回事吗?是$t
真的两个不同的值(0
和test
在同一时间),还是我失去了一些东西?
由于PHP的类型变乱,导致这种“奇怪”的行为。由于您使用的是松散比较==
来与整数进行比较,因此会将0
字符串test
转换为整数,从而导致转换为0
。请参阅松散比较==
表。在带有字符串的行中,php
您将看到它等于integer 0
,它适用于所有字符串。
您应该使用严格的(类型)比较运算符,即===
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句