聊聊PHP中的 === 运算符为什么比 == 快

这篇文章带你探究一下在php中什么为什么运算符===比==要快,文章中给大家介绍的非常详细,对大家的学习或工作都具有一定的参考价值。

那么本文将给大家介绍PHP中的===运算符为什么比==快?

PHP中的===和==运算符,这两个运算符属于PHP中的比较运算符。

===运算符称为绝对等于,==运算符称为等于。

语法示例:

$a == $b,如果在类型转换后 $a 等于 $b,则为 TRUE;

$a === $b,如果 $a 等于 $b,并且两者的类型相同,则为 TRUE;

如果操作数的类型不同,那么==和===将产生不同的结果,在这种情况下,操作符的速度会有所不同,因为==将执行类型转换,然后进行比较。

如果操作数是相同类型的,那么==和===将产生相同的结果。在这种情况下,这两个操作符的速度几乎相同,因为任何操作符都不执行类型转换。

==操作符会临时转换数据类型,以查看其值是否等于另一个操作数,而===不需要进行任何类型转换,因此完成的工作更少,这也就使得它比==操作符快。

代码示例1:

  1. var_dump(0 == "a");
  2. // 1 == 1 -> true
  3. var_dump("1" == "01");
  4. // 10 == 10 -> true
  5. var_dump("10" == "1e1");
  6. // 100 == 100 -> true
  7. var_dump(100 == "1e2");
  8. var_dump(0 === "a");
  9. // "1" === "01" -> false
  10. var_dump("1" === "01");
  11. // "10" === "1e1" -> false
  12. var_dump("10" === "1e1");
  13. // 100 == "1e2" -> false
  14. var_dump(100 === "1e2");
  15. switch ("a") {
  16. case 0:
  17. echo "第一种情况";
  18. break;
  19. case "a":
  20. echo "第二种情况";
  21. break;
  22. }

输出:

  1. boolean true
  2. boolean true
  3. boolean true
  4. boolean true
  5. boolean false
  6. boolean false
  7. boolean false
  8. boolean false

第一种情况

代码示例2:

  1. var_dump(1 == TRUE);
  2. var_dump(0 == FALSE);
  3. var_dump(1 === TRUE);
  4. var_dump(0 === FALSE);

输出:

  1. boolean true
  2. boolean true
  3. boolean false
  4. boolean false

注意: === 运算符执行“类型安全比较”,仅当两个操作数具有相同的类型和值时它才会返回 true,而如果只比较值就可以使用==。