1
我學東西的驗證,我只是不明白這一點:無法理解的驗證邏輯:=== VS ==
if (strpos($value, "@") === false) { echo "Validation failed." }
什麼===
和==
之間的區別?爲什麼我們不能使用==
來代替,爲什麼它是=== false
?是否意味着@
不在$value
中,或者意味着0
?
我學東西的驗證,我只是不明白這一點:無法理解的驗證邏輯:=== VS ==
if (strpos($value, "@") === false) { echo "Validation failed." }
什麼===
和==
之間的區別?爲什麼我們不能使用==
來代替,爲什麼它是=== false
?是否意味着@
不在$value
中,或者意味着0
?
相等運算==
A == B
檢查是否A和B彼此相等,但不是他們是否是相同的數據類型。
甲相關的例子:0 == false
爲真
恆等算子===
A === B
檢查A和B是否相等彼此也是相同的數據類型。
一個與此相關例子:0 === false
是假的
應用這裏
應用給你的情況下,如果@
被發現爲字符串的第一個字符,strpos($value,"@")
將返回0
。如果根本找不到,則返回false
。
所以爲了避免混淆這兩種情況,測試必須使用===
而不是==
。
有用的參考資料:
http://php.net/manual/en/function.strpos.php http://php.net/manual/en/language.operators.comparison.php
我認爲這是PHP的,但平等的身份運營商是共同的許多編程語言。
非常感謝兄弟! :) –
不用擔心。請將我的答案標記爲感謝,並幫助其他用戶找到有用的信息。 –
抱歉不知道,有點新讓我檢查 –