2012-09-21 38 views
0

我對這個平等的運營商有點難住。PHP ==將「2.5」轉換爲2?

echo(2 ==「2.5time」)

應輸出爲1/true。

「2.5time」字符串應該轉換爲整數並輸出2作爲整數。

但它似乎沒有輸出任何東西。

任何人都可以解釋一下嗎?

+0

請發送完整的代碼請 – rsz

+0

嗯,這是完整的代碼,因爲我正在做一個測試。 – tester2001

回答

2

比較是PHP解析字符串並獲得2.5的浮點數。它然後比較這對你的整數。如果你想在一個字符串的開頭數字爲整數來處理它被作爲一個浮動2.0

4

如果它不輸出任何內容,則表示該內容爲false,請執行var_dump(2 ==「2.5time」)來查看正在進行的操作。

0

如果使用==運算符,則會比較所有字符串。

(2 == "2") // is true, because is the same value 
(2 === "2") // is false, because is the same value, but is different types 
(2 == "23") // is false, contains different values 

但在你的情況下,將更好地運用strpos找到一個字符串的子字符串。

1

處理,那麼你必須鍵入扮演他們作爲一個整數,因此

if(2 == (int)"2.5times") // will be true