【问题标题】:Can't understand validation logic: === vs ==无法理解验证逻辑:=== vs ==
【发布时间】:2017-05-07 13:00:55
【问题描述】:

我正在学习验证的东西,但我无法理解:

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

===== 有什么区别?为什么我们不能使用== 而不是=== false? false 是否意味着@ 不在$value 中或者意味着0

【问题讨论】:

    标签: php truthiness


    【解决方案1】:

    等式运算符==
    A == B 检查 A 和 B 是否相等,但不检查它们是否是相同的数据类型。

    一个相关的例子:0 == false 是真的

    Identity Operator ===
    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,但相等和身份运算符在许多编程语言中都很常见。

    【讨论】:

    • 不用担心。请将我的回答标记为已接受,以表示感谢并帮助其他用户找到有用的信息。
    • 抱歉不知道,有点新,让我检查一下
    猜你喜欢
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 2019-01-30
    • 2017-07-18
    相关资源
    最近更新 更多