话不多说,上代码
$a=0;
$b="test";
if($a==$b)
{
echo "true";
}
else
{
echo "false";
}
if($a===$b)
{
echo "true";
}
else
{
echo "false";
}
上面两个判断分别返回true和false,或许很多人会说这不是很简单的判断吗?但是对于我来说却是个很神奇的结果。。。
那么为什么第一种判断会返回true呢?
问问度娘,解释如下:
1.==只是对值得比较(将两边值转化为同类型再比较),而===则是对值和类型的比较。
2.对于==的比较,若有一方为数字,另一方为字符串或空或null,均会先将非数字一方转化为0,再做比较。
接下来,我们再做个比较
$a=1;
$b="test";
if($a==$b)
{
echo "true";
}
else
{
echo "false";
}
此时结果为false
区分完php中==和===的区别,我又想,在javascript中会不会是一样的结果呢?
接下来我们再做个测试。以下是javascript代码:
var a=0;
var b="test";
if(a==b)
{
console.log("true");
}
else
{
console.log("false");
}
var a=1;
var b="test";
if(a==b)
{
console.log("true");
}
else
{
console.log("false");
}
那么上面的结果返回什么呢?根据刚才对php的结果,我的判断是true和false,但是结果却出乎意料,两次结果都返回了false。
可见==比较符在javascript中和在php还是有点区别的,在javascript中数字和非数字的比较,非数字不会被转化为0,至于具体原因,还有待考究。希望哪位大神可以解答解答。
以上是本次内容。