我只是發現了PHP的怪異行爲,如果條款Comparsion奇怪的行爲0 ==「一」
var_dump((bool)0);
var_dump((bool)"one");
var_dump(0 == "one");
它打印
bool(false) bool(true) bool(true)
文件說,「表達進行評估,以它的布爾值」所以布爾值0
是false
和"one"
是true
所以0 == "one"
的結果應該是false
,但它的代替值是true
。
有人可以解釋它嗎?
PHP''==看起來幾乎一文不值。這似乎是相關的:http://php.net/manual/en/types.comparisons.php –
「這是在手動的某處解釋的PHP行爲?(字符串與零比較)」這是不一樣的'0'和'0000 '兩者都被轉換爲0,這很明顯 – Robert
「這個php行爲在手冊的某處解釋過嗎?(帶零比較的字符串)」也不一樣,因爲它將被轉換爲0,因爲它會將第一個數字轉換爲int。這是不正確的 – Robert