我学习验证的东西,我无法理解这一点:
if (strpos($value, "@") === false) { echo "Validation failed." }
===
和==
之间的区别是什么?为什么我们不能使用==
,为什么会=== false
呢? false是否表示@
不在$value
或0
?
答案 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,但是相同和身份运算符在许多编程语言中都很常见。