当前位置: 首页 > 后端技术 > PHP

PHP下==和===的区别

时间:2023-03-29 19:55:54 PHP

三个关键点:比较相同类型的两方时,两者没有区别当双方的类型不一致时,=的比较结果=不可预知,===isfalsenullfirst也是一个类型这里有一个例子if(1=="1"){echo"1==1istrue".PHP_EOL;}else{echo"1==1isfalse".PHP_EOL;}他的输出会是true,这个时候你肯定觉得没什么问题。PHP是一种弱类型语言,1等于“1”,但我们通常不建议这样做。原因请看下面的例子if(1==true){echo"1==trueistrue".PHP_EOL。“获取类型(1)==”。获取类型(1)。PHP_EOL。“获取类型(真)==”。获取类型(真)。PHP_EOL。PHP_EOL;}else{echo"1==trueisfalse".PHP_EOL;}if("test"==0){echo"test==0istrue".PHP_EOL。"gettype(\"test\")==".获取类型(“测试”)。PHP_EOL。"gettype(0)==".gettype(0).PHP_EOL.PHP_EOL;}else{echo"test==0isfalse".PHP_EOL;}注意:gettype(var)可以将var的数据以字符串的形式返回上面type的代码输出如下1==trueistruegettype(1)==integergettype(true)==booleantest==0istruegettype("test")==stringgettype(0)==integer见上1==true没有错,只是他们两个的类型不同的是,true是boolean类型,php中任何非零值都是true,0是false,所以引入了上面示例中第二部分代码和第二部分输出的问题,因为0是false,而string参与比较时,string会被当成0处理,因为不能直接和boolean比较。这时候,所有的字符串都会被处理成0。另外,如果你try(0==null)会是true,但是"test"==null会是false。因此可见,即使a==b,b==c,a==c也是不确定的。因此,为了养成良好的习惯,避免不可预知的错误,我们应该尽量使用===。===的三个要点:两个类型都不等于false,两个值都不等于false,两个类型和值都等于true