Php Can';不理解验证逻辑:==vs==

Php Can';不理解验证逻辑:==vs==,php,truthiness,Php,Truthiness,我正在学习验证方面的东西,但我无法理解这一点: if (strpos($value, "@") === false) { echo "Validation failed." } ==和==之间有什么区别?为什么我们不能使用==,为什么它是===false?false是否表示@不在$value中,或表示0?相等运算符== A==B检查A和B是否相等,但不检查它们是否是相同的数据类型 一个相关的例子:0==false为true 标识运算符== A===B检查A和B是否彼此相等,也检查相同的数据类型

我正在学习验证方面的东西,但我无法理解这一点:

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

==
==
之间有什么区别?为什么我们不能使用
==
,为什么它是
===false
?false是否表示
@
不在
$value
中,或表示
0

相等运算符
==

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

一个相关的例子:
0==false
为true

标识运算符
==

A===B
检查A和B是否彼此相等,也检查相同的数据类型

一个相关的例子:
0===false
为false

此处的应用程序

将此应用到您的案例中,如果发现
@
作为字符串的第一个字符,
strpos($value,“@”)
将返回
0
。如果根本找不到,它将返回
false

因此,为了避免混淆这两种情况,测试必须使用
==
而不是
=

有用的参考资料:


我假设这是php,但等式和标识运算符在许多编程语言中都很常见。

等式运算符
=

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

一个相关的例子:
0==false
为true

标识运算符
==

A===B
检查A和B是否彼此相等,也检查相同的数据类型

一个相关的例子:
0===false
为false

此处的应用程序

将此应用到您的案例中,如果发现
@
作为字符串的第一个字符,
strpos($value,“@”)
将返回
0
。如果根本找不到,它将返回
false

因此,为了避免混淆这两种情况,测试必须使用
==
而不是
=

有用的参考资料:


我假设这是php,但等式和标识运算符在许多编程语言中都很常见。

不用担心。请将我的回答标记为已接受,以表示感谢,并帮助其他用户找到有用的信息。对不起,我不知道,有点新,请让我检查无需担心。请将我的回答标记为已接受,以表示感谢,并帮助其他用户找到有用的信息。对不起,我不知道,有点新,让我检查一下