PHP的IF条件中的一些困惑

时间:2013-09-12 07:02:38

标签: php if-statement

这是代码

$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.然后我得到了我想要的确切输出。但我不明白为什么会这样。 所以请帮助我。

3 个答案:

答案 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”;