簡體   English   中英

PHP IF條件中的一些困惑

[英]Some Confusion in IF Condition of PHP

這是代碼

$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。然后我得到了想要的確切輸出。 但是我不明白為什么會這樣。 所以請幫我。

PHP會進行弱類型比較,也就是說,它會在進行實際比較之前將兩個操作數轉換為相同類型。

如果操作數之一是數字,則另一個也將轉換為數字。 如果第二個操作數是一個字符串且不包含數字,則將其靜默轉換為數字0

為避免整個問題,請與運算符!==一起使用字符串類型檢查( ===等於)。

if($a !== '' && $a !== 0) {
    echo "Inside If";
} else {
    echo "Outside If";
}

首先,如果在if語句上有多個條件,則應始終將每個條件括在方括號中

因此,您應該做的第一件事就是將代碼更改為

     $a='Rs 15.25';
    if(($a!='') && ($a!='0'))
    {
         echo "Inside If";
    }else
    {
         echo "Outside If";
    }

在PHP中,0 = FALSE,1 = TRUE。
if($ a!= 0)-> if($ a!= FALSE)
如果$ a ='Rs 15.25',$ a!= false並且$ a不為空,那么您將回顯“ If If Out”;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM