为了账号安全,请及时绑定邮箱和手机立即绑定

PHP等式(== double equals)和identity(=== triple equals

PHP等式(== double equals)和identity(=== triple equals

PHP
慕的地10843 2019-05-25 15:59:47
PHP等式(== double equals)和identity(=== triple equals==和之间有什么区别===?松散的==比较究竟是如何运作的?严格的===比较究竟是如何运作的?什么是有用的例子?
查看完整描述

4 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

==和之间的区别===

松散==相等的运算符和严格===相同的运算符之间的区别在手册中有详细解释:


比较运算符


┌──────────┬───────────┬────────────────────────── ─────────────────────────────────┐

│例子│姓名│结果│

├──────────┼───────────┼────────────────────────── ─────────────────────────────────┤

│$ a == $b│Equal│如果在类型杂耍后$ a等于$ b,则为TRUE。│

│$ a === $b│相同│如果$ a等于$ b,则为TRUE,它们属于同一类型。│

└──────────┴───────────┴────────────────────────── ─────────────────────────────────┘

==比较宽松

如果您正在使用==运算符,或者使用松散比较的任何其他比较运算符!=,<>或者==,您始终必须查看上下文,以查看某些内容转换为什么,在哪里以及为什么要了解正在发生的事情。

转换规则

类型比较表

作为参考和示例,您可以在手册中看到比较表:

松散的比较 ==


┌─────────┬───────┬───────┬───────┬───────┬─────── ┬───────┬───────┬───────┬───────┬─────────┬─────── ┬───────┐

││TRUE│FALSE│1│0│-1│“1”│“0”│“-1”│NULL│数组()│“php”│“”│

├─────────┼───────┼───────┼───────┼───────┼─────── ┼───────┼───────┼───────┼───────┼─────────┼─────── ┼───────┤

│正确│正确│错误│正确│错误│正确│正确│错误│正确│错误│错误│正确│错误│

│错误│错误│正确│错误│正确│错误│错误│正确│错误│正确│正确│错误│正确│

│1│TRUE│FALSE│TRUE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│

│0│FALSE│TRUE│FALSE│TRUE│FALSE│FALSE│TRUE│FALSE│TRUE│FALSE│TRUE│TRUE│

│-1│TRUE│FALSE│FALSE│FALSE│TRUE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│

│“1”│TRUE│FALSE│TRUE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│

│“0”│错误│正确│错误│正确│错误│错误│正确│错误│错误│错误│错误│错误│

│“-1”│TRUE│FALSE│FALSE│FALSE│TRUE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│

│NULL│FALSE│TRUE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│TRUE│TRUE│FALSE│TRUE│

│数组()│错误│正确│错误│错误│错误│错误│错误│错误│正确│正确│错误│错误│

│“php”│TRUE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│TRUE│FALSE│

│“”│错误│正确│错误│正确│错误│错误│错误│错误│正确│错误│错误│正确│

└─────────┴───────┴───────┴───────┴───────┴─────── ┴───────┴───────┴───────┴───────┴─────────┴─────── ┴───────┘

严格===相同的比较

如果您正在使用===运算符或任何其他使用严格比较的比较运算符(如!==or)===,那么您始终可以确保类型不会神奇地改变,因为不会进行转换。因此,通过严格比较,类型和值必须相同,而不仅仅是值。

类型比较表

作为参考和示例,您可以在手册中看到比较表:


严格比较 ===


┌─────────┬───────┬───────┬───────┬───────┬─────── ┬───────┬───────┬───────┬───────┬─────────┬─────── ┬───────┐

││TRUE│FALSE│1│0│-1│“1”│“0”│“-1”│NULL│数组()│“php”│“”│

├─────────┼───────┼───────┼───────┼───────┼─────── ┼───────┼───────┼───────┼───────┼─────────┼─────── ┼───────┤

│TRUE│TRUE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│

│错误│错误│正确│错误│错误│错误│错误│错误│错误│错误│错误│错误│错误│

│1│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│

│0│FALSE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│

│-1│FALSE│FALSE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│

│“1”│错误│错误│错误│错误│错误│正确│错误│错误│错误│错误│错误│错误│

│“0”│错误│错误│错误│错误│错误│错误│正确│错误│错误│错误│错误│错误│

│“-1”│错误│错误│错误│错误│错误│错误│错误│正确│错误│错误│错误│错误│

│NULL│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│FALSE│TRUE│FALSE│FALSE│FALSE│

│数组()│错误│错误│错误│错误│错误│错误│错误│错误│错误│正确│错误│错误│

│“php”│错误│错误│错误│错误│错误│错误│错误│错误│错误│错误│正确│错误│

│“”│错误│错误│错误│错误│错误│错误│错误│错误│错误│错误│错误│正确│

└─────────┴───────┴───────┴───────┴───────┴─────── ┴───────┴───────┴───────┴───────┴─────────┴─────── ┴───────┘


查看完整回答
反对 回复 2019-05-25
?
DIEA

TA贡献1820条经验 获得超2个赞

如果运算符不同,则运算符==在两种不同类型之间进行转换,而===运算符执行“类型安全比较”。这意味着如果两个操作数具有相同的类型和相同的值,它将仅返回true。


例子:


1 === 1: true

1 == 1: true

1 === "1": false // 1 is an integer, "1" is a string

1 == "1": true // "1" gets casted to an integer, which is 1

"foo" === "foo": true // both operands are strings and have the same value

警告:具有等效成员的同一类的两个实例与===运算符不匹配。例:


$a = new stdClass();

$a->foo = "bar";

$b = clone $a;

var_dump($a === $b); // bool(false)


查看完整回答
反对 回复 2019-05-25
?
慕容森

TA贡献1853条经验 获得超18个赞

关于JavaScript:

===运算符与==运算符的作用相同,但它要求其操作数不仅具有相同的值,而且还具有相同的数据类型。

例如,下面的示例将显示'x和y相等',但不是'x和y相同'。

var x = 4;var y = '4';if (x == y) {
    alert('x and y are equal');}if (x === y) {
    alert('x and y are identical');}


查看完整回答
反对 回复 2019-05-25
  • 4 回答
  • 0 关注
  • 594 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信