2017-05-07 87 views
1

我學東西的驗證,我只是不明白這一點:無法理解的驗證邏輯:=== VS ==

if (strpos($value, "@") === false) { echo "Validation failed." } 

什麼=====之間的區別?爲什麼我們不能使用==來代替,爲什麼它是=== false?是否意味着@不在$value中,或者意味着0

回答

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的,但平等的身份運營商是共同的許多編程語言。

+0

非常感謝兄弟! :) –

+0

不用擔心。請將我的答案標記爲感謝,並幫助其他用戶找到有用的信息。 –

+0

抱歉不知道,有點新讓我檢查 –