PHP中==和===的区别在哪?

话不多说,上代码

$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,至于具体原因,还有待考究。希望哪位大神可以解答解答。

以上是本次内容。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值