Rumah >pembangunan bahagian belakang >tutorial php >PHP字符串"all"和整型0比较的奇怪问题
<?php$a = "all";$b = 0;var_dump($a);var_dump($b);$cmp = ($a==$b);var_dump($cmp); //bool(true)???$cmp2 = ($a===$b);var_dump($cmp2); //bool(false)
任何类型和数值类型与做比较时,都将化为数值类型进行比较
"all" 化为数值就是 0 了,所以 bool(true)
一个例外的是 包含类型的比较 ===
他是先做类型比较,在做值比较
不同变量类型进行比较的时候,PHP有内部机制进行转换,再加以比较。
$cmp = (intval($a)==$b);