Warum ist === schneller als ==?

Guanhui
Freigeben: 2023-03-01 15:46:01
nach vorne
2856 Leute haben es durchsucht

Warum ist === schneller als ==?

Vergleichsoperatoren == (Gleichheitsoperator) und === (Identitätsoperator) werden zum Vergleich zweier Werte verwendet. Sie werden auch als lose Gleichheitsoperatoren (==) und strikte Gleichheitsoperatoren (===) bezeichnet.

符号 名称 例子 输出结果
== 等于 $a == $b 忽略类型,如果 $a 等于 $b 则为 TRUE
=== 恒等于 $a === $b 如果 $a 等于 $b,并且类型相同则为 TRUE

PHP-Operatoren Es gibt viele Operatoren in PHP, aber die Operatoren == und === führen ähnliche Aufgaben streng oder willkürlich aus.

  • Wenn die beiden Werte unterschiedlichen Typs sind, liefern == und === unterschiedliche Ergebnisse. Die Geschwindigkeit des Vorgangs variiert ebenfalls, da == zuerst eine Typkonvertierung durchführt und dann den Vergleich durchführt.
  • Wenn zwei Werte vom gleichen Typ sind, dann liefern == und === dasselbe Ergebnis. Auch die Betriebsgeschwindigkeit ist nahezu gleich und keiner der Operatoren führt eine Typkonvertierung durch.

Gleichheitsoperation == konvertiert vorübergehend den Datentyp beim Vergleich zweier Werte, während === (identischer Operator) keine Typkonvertierung durchführen muss, sodass der Berechnungsaufwand und die Geschwindigkeit reduziert werden ist schneller.

Fall 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; 
} 
?>
Nach dem Login kopieren

Ausgabe:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
Im ersten Fall

Fall 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); 
?>
Nach dem Login kopieren

Ausgabe:

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

Hinweis: === Der Operator „Typvergleich ist relativ sicher“ gibt nur TRUE zurück, wenn zwei Werte denselben Typ und Wert haben. Verwenden Sie = = gibt TRUE zurück, wenn die Werte gleich sind.

Empfohlenes Tutorial: „PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWarum ist === schneller als ==?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!