2010-07-29 45 views

回答

13

因爲任何非數字字符串強制轉換爲int將變爲0。

如果你不希望這種情況發生,使用===,相同的操作。

閱讀:
http://php.net/manual/en/language.operators.comparison.php
​​

+0

謝謝,現在我明白了。 – Putr 2010-07-29 15:16:05

+1

這只是挑剔的,但'is_numeric('16 foo')'是'FALSE',例如。一個非數字字符串並將它轉換爲int將把它變成16,而不是0. – Gordon 2010-07-29 15:33:21

+0

@Gordon PHP以神祕的方式工作,不是嗎? – NullUserException 2010-07-29 15:48:03

4

因爲字符串是0時,在多個方面進行評估。 Quoting

如果你比較多個具有一個字符串或比較涉及數字串,則每一個字符串被轉換爲數字和數值進行比較。

因此it depends on what the string contains

另請參閱PHP手冊中的chapter on Type JugglingType Comparison

+0

如下所述:http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion – Mchl 2010-07-29 15:09:51

+0

@ Mchl是的,謝謝。添加它。 – Gordon 2010-07-29 15:12:56

+0

so ... NONE是一個關鍵字?像'假'? (我在閱讀本章的時候問這個問題) – Putr 2010-07-29 15:13:45