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

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

==和之间有什么区别===

  • 松散的==比较究竟是如何运作的?

  • 严格的===比较究竟是如何运作的?

什么是有用的例子?


慕的地10843
浏览 595回答 4
4回答

12345678_0001

==和之间的区别===松散==相等的运算符和严格===相同的运算符之间的区别在手册中有详细解释:比较运算符┌──────────┬───────────┬────────────────────────── ─────────────────────────────────┐│例子│姓名│结果│├──────────┼───────────┼────────────────────────── ─────────────────────────────────┤│$ a == $b│Equal│如果在类型杂耍后$ a等于$ b,则为TRUE。││$ a === $b│相同│如果$ a等于$ b,则为TRUE,它们属于同一类型。│└──────────┴───────────┴────────────────────────── ─────────────────────────────────┘==比较宽松如果您正在使用==运算符,或者使用松散比较的任何其他比较运算符!=,<>或者==,您始终必须查看上下文,以查看某些内容转换为什么,在哪里以及为什么要了解正在发生的事情。转换规则转换为布尔值转换为整数转换为浮动转换为字符串转换为数组转换为对象转换为资源转换为NULL类型比较表作为参考和示例,您可以在手册中看到比较表:松散的比较 ==┌─────────┬───────┬───────┬───────┬───────┬─────── ┬───────┬───────┬───────┬───────┬─────────┬─────── ┬───────┐││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”│错误│错误│错误│错误│错误│错误│错误│错误│错误│错误│正确│错误││“”│错误│错误│错误│错误│错误│错误│错误│错误│错误│错误│错误│正确│└─────────┴───────┴───────┴───────┴───────┴─────── ┴───────┴───────┴───────┴───────┴─────────┴─────── ┴───────┘

DIEA

如果运算符不同,则运算符==在两种不同类型之间进行转换,而===运算符执行“类型安全比较”。这意味着如果两个操作数具有相同的类型和相同的值,它将仅返回true。例子:1 === 1: true1 == 1: true1 === "1": false // 1 is an integer, "1" is a string1 == "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)

慕容森

关于JavaScript:===运算符与==运算符的作用相同,但它要求其操作数不仅具有相同的值,而且还具有相同的数据类型。例如,下面的示例将显示'x和y相等',但不是'x和y相同'。var&nbsp;x&nbsp;=&nbsp;4;var&nbsp;y&nbsp;=&nbsp;'4';if&nbsp;(x&nbsp;==&nbsp;y)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;alert('x&nbsp;and&nbsp;y&nbsp;are&nbsp;equal');}if&nbsp;(x&nbsp;===&nbsp;y)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;alert('x&nbsp;and&nbsp;y&nbsp;are&nbsp;identical');}
打开App,查看更多内容
随时随地看视频慕课网APP