2014-04-07 84 views
0

真的,我有這樣的腳本符號和小數在PHP

$number = range(0, 9); 

當我有這樣

if (in_array('@', $number) === true) { 
    echo "true"; 

}else "false"; 

和輸出條件:

true 

,我的問題是,爲什麼這個符號與數組$ number中的任何數字相同。 我想符號只是符號而不是數字。

例如,我想這樣的

if (in_array('@', $number) === true) { 
    echo "true"; 

}else "false"; 

輸出:

false 

回答

5

documentation for in_array():

如果嚴格設置爲TRUE第三個參數,則in_array()功能還將檢查乾草堆中針的類型。

在PHP,鑄造,不以數字開頭的任意字符串的計算結果爲0。存在於您的陣列中的0,所以in_array()返回true。如果您不希望發生這種情況,請將第三個參數in_array()設置爲true,以便執行較強的比較(相當於===)並考慮類型。

if (in_array('@', $number, true) === true) { 
    echo "true"; 
} 
else { 
    echo "false"; 
} 

輸出:

false 
+0

HY感謝您的回答。如果我有這樣的條件變得真實,因爲在數組@number有0。和什麼時候比較白色的任何符號。 –