php弱类型对比要注意
2021-04-16 19:47:49 / 5383 / 编程代码星期五的下午,我兢兢业业的写curd,
代码传上去,一运行,结果并没有得到我想要的结果,
当时我就纳闷了,因为写了个很特别简单的if判断,这怎么都能错.
然后我把代码分离出来,测试了一下.
然后就发现了这个问题
<?php
if(0 == 'clean'){
echo 1;
}else{
echo 0;
}
你认为它会输出什么?
其实是1,是不是很震惊?
我在在线php运行网站上测试了一下
https://sandbox.onlinephpfunctions.com/
php-4.49到php-7.4.13无一幸免,都会输出1
只有php-8才能得到正常结果.
这是因为php类型强制转化的结果。
贴一下chengyao的回答:
var_dump(0 == 'test'); // true
var_dump((int)'test'); // 0
var_dump(0 == '5test'); // false
var_duup((int)'5test'); // 5
封尘
@W_Aifa 推荐用全等,只是用时候为了省事,写==
W_Aifa
用===全等 是不是会好点?