欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

为什么 === 的速度比 == 快

程序员文章站 2022-03-26 11:42:47
比较运算符 == (相等运算符) 和 (恒等运算符) 用于比较两个值。他们也被称为 宽松等于 (==) 和 严格等于 ( ) 运算符。 PHP 运算符 PHP 中有很多运算符, 但 == 和 运算符严格或随意执行类似的任务。 如果两个值的类型不同,那么 == 和 会得到 不同的结果。运算速度也会有所 ......

比较运算符 == (相等运算符) 和 === (恒等运算符) 用于比较两个值。他们也被称为 宽松等于 (==) 和 严格等于 (===) 运算符。

为什么 === 的速度比 == 快

php 运算符 php 中有很多运算符, 但 == 和 === 运算符严格或随意执行类似的任务。

 

  • 如果两个值的类型不同,那么 == 和 === 会得到 不同的结果。运算速度也会有所不同, 因为 == 会先进行类型转换,然后进行比较。
  • 如果两个值类型相同,那么 == 和 === 会得到 相同的结果。 运算速度也几乎相同,两个运算符都不会进行类型转换。

 

相等运算 == 比较两个值时会临时转换数据类型,而 === (全等运算符)不需要执行任何类型转换,因此计算量减少,速度也更快。

 

案例 1:

<?php 

// 0 == 0 ->  类型相同返回 true
// 转换完成,然后
// 检查是否相等
var_dump(0 == "a"); 

// 1 == 1 -> true 
var_dump("1" == "01"); 

// 10 == 10 -> true 
var_dump("10" == "1e1"); 

// 100 == 100 -> true 
var_dump(100 == "1e2"); 

// 0 === "a" -> 这种情况为 false
// 转换不仅完成
// 还检查是否存在
// 是否相等
var_dump(0 === "a"); 

// "1" === "01" -> false 
var_dump("1" === "01"); 

// "10" === "1e1" -> false 
var_dump("10" === "1e1"); 

// 100 == "1e2" -> false 
var_dump(100 === "1e2"); 

switch ("a") { 
case 0: 
    echo "in first case"; 
    break; 

// 永远不会匹配 "a" 选项
// 因为 switch 使用的是 == 
case "a": 
    echo "in sceond case"; 
    break; 
} 
?> 

  

输出:

 

bool(true)

bool(true)

bool(true)

bool(true)

bool(false)

bool(false)

bool(false)

bool(false)

in first case

案例 2:

<?php 

// true - 以下表达式等同于 (bool)1 == true 
var_dump(1 == true); 

// true - 以下表达式等同于 (bool)0 == false 
var_dump(0 == false); 

// false - 1 不全等于 true
// 1 是整形, true 是布尔型 
var_dump(1 === true); 

// false - 0 不全等于 false
// 0 是整形, false 是布尔型
var_dump(0 === false); 
?> 

  

输出:

bool(true)
bool(true)
bool(false)
bool(false)

注意: === 运算符‘类型比较相对安全’, 仅当两个值具有相同的类型和值时才会返回 true, 使用 == 时,值相等就会返回 true。

更多学习内容请访问:

八重樱:腾讯t3-t4标准精品php架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)

以上内容希望帮助到大家,很多phper在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、tp6,laravel,yii2,redis,swoole、swoft、kafka、mysql优化、shell脚本、docker、微服务、nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处