比如 $a="0dff";

这是赋值,大家都知道的!

再比如比拟;

php等号php填坑系列之你弗成不知的等号 CSS

$a="0dff";

if(0==$a){

echo "true";

}else{

echo "false";

}

这是比拟!

这些都没得说了,大家一眼都能看出来!
那么,问题来了,上面的表达式,会输出什么字符呢?!
是true还是false?

可能结果会出乎你的猜想,上面输出true!

缘故原由如下,程序在编译实行过程中在进行==比拟时默认认为0dff便是0而不是字符串,以是就会输出true!

同类还有

$a="";

if(false==$a){

echo "false";

}elseif (''"==$a){

echo "empty";

}else{

echo "false";

}

在$a为空时我们想走empty的流程输出empty,但是实际实行却走false!

这也便是php这类弱类型措辞的缺陷!
不检讨变量类型的!

为理解决这个问题php供应了"===",即全等,来处理这类问题!

===不只须要值相同,还要类型相同!

即全等旁边如果类型不同,直接返回false,

如果两边值不等,直接返回false,

两者都相等,返回true!

因此,现在只需将上面的==,修正成===既可达到预期目标!

同类的!= !==也要把稳的!

关注我,互换,分享与填坑!