这个逻辑条件失败的确切原因

Ind*_*ngh 2 php if-statement

为什么下面的代码打印"这里",它应该是"那里"

$a = "171E-10314";
if($a == '0')
{
echo "here";
}
else
{
echo "there";   
}
Run Code Online (Sandbox Code Playgroud)

Aud*_*low 5

PHP会自动将字符串中的数字或整数解析为整数."171E-10314"告诉PHP计算的另一种方式171 * 10 ^ -10314,相当于(差不多)0.所以,当你这样做时$a == '0','0'它将等同0于PHP,并返回true.

如果要比较字符串,请使用strcmp函数或使用严格比较器===.