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

来源:互联网 发布:遗传算法图像分割 编辑:程序博客网 时间:2024/06/05 07:21

话不多说,上代码

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

以上是本次内容。

原创粉丝点击