为什么我用一个非空字符串与0做比较结果为真?
例如
$test01="hello"
if($test01==0){
echo "true"
}
else{
echo"false"
}
输出的结果为true
希望能给解释一下原理。
最佳答案
不同变量类型进行比较的时候,PHP有内部机制进行转换,再加以比较。
$test01 == 0
应该是把 $test01 转化成整型再进行比较,所以结果就是 true 了。
如果不熟悉内部机制,在比较之前,尽量自己转化为相同类型再进行比较。
比较安全的做法就是用 === (三个等于号),这样不仅比较内容,还比较类型,如果类型不一致就按 false 处理。
星期一, 10/31/2016 - 17:20 — 杨超