这是代码
$a = 'Rs 15.25';
if ( $a != '' && $a! = 0 ) {
echo "Inside If";
} else {
echo "Outside If";
}
实际上我想打印“Inside If”,这就是为什么我把$ a ='Some String Value'。但它始终打印“Outside If”。然后我将代码更改为
$a = 'Rs 15.25';
if ( $a != '' && $a != '0' ) {
echo "Inside If";
} else {
echo "Outside If";
}
我刚刚将单引号添加到0.然后我得到了我想要的确切输出。但我不明白为什么会这样。 所以请帮助我。
答案 0 :(得分:1)
PHP进行弱类型比较,也就是说,在进行实际比较之前,它会将两个操作数转换为相同的类型。
如果其中一个操作数是数字,则另一个操作数也转换为数字。如果第二个操作数是一个字符串且不包含任何数字,则会以静默方式将其转换为数字0
。
要避免这个问题,请使用字符串类型检查与运算符!==
(===
进行相等)。
if($a !== '' && $a !== 0) {
echo "Inside If";
} else {
echo "Outside If";
}
答案 1 :(得分:-1)
首先,当你在if语句中有多个条件时,你应该总是将每个条件括在括号内
首先,您应该将代码更改为
$a='Rs 15.25';
if(($a!='') && ($a!='0'))
{
echo "Inside If";
}else
{
echo "Outside If";
}
答案 2 :(得分:-1)
在PHP 0 = FALSE,1 = TRUE
if($ a!= 0) - > if($ a!= FALSE)
如果$ a ='Rs 15.25',$ a!= false且$ a不为空,那么你有回音“Outside If”;