为什么 === 的速度比 == 快?-PHP问题

资源魔 22 0

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

符号称号例子输入后果
==等于$a == $b疏忽类型,假如 $a 等于 $b 则为 TRUE
===恒等于$a === $b假如 $a 等于 $b,而且类型相反则为 TRUE

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。

保举教程:《PHP教程》

以上就是为何 === 的速率比 == 快?的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题

抱歉,评论功能暂时关闭!