El operador de comparación == (operador de igualdad) y === (operador de identidad) se utilizan para comparar dos valores. También se conocen como el operador vagamente igual (==) y el operador estrictamente idéntico (===) .
Símbolo | Nombre | Ejemplo | Producción |
---|---|---|---|
== | Igualdad | $a == $b | VERDADERO si $a es igual a $b después de hacer malabares con el tipo |
=== | Identidad | $a === $b | VERDADERO si $a es igual a $b, y ambos son del mismo tipo |
Operadores de PHP: hay muchos operadores en PHP, pero el operador == y === realiza un tipo de tarea similar de manera estricta o casual.
- Si los operandos son de tipo diferente, entonces == y === producirán resultados diferentes . La velocidad de los operadores será diferente en este caso, ya que == realizará la conversión de tipo y luego hará la comparación.
- Si los operandos son del mismo tipo, tanto == como === producirán los mismos resultados . La velocidad de ambos operadores es casi idéntica en este caso ya que ninguno de los operadores realiza ninguna conversión de tipo.
El operador de igualdad == convierte el tipo de datos temporalmente para ver si su valor es igual al otro operando, mientras que === (el operador de identidad) no necesita hacer ninguna conversión de tipo y, por lo tanto, se realiza menos trabajo, lo que lo hace más rápido. que ==.
Ejemplo 1:
php
<?php // 0 == 0 -> true as first type // conversion is done and then // checked if it is equal or not 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 in this type // conversion is not done only // checking is there if they are // equal or not 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; // Never reached because "a" is already // matched with 0 as in switch == is used case "a": echo "In second case"; break; } ?>
Producción:
bool(true) bool(true) bool(true) bool(true) bool(false) bool(false) bool(false) bool(false) In first case
Ejemplo 2:
php
<?php // TRUE - same as (bool)1 == TRUE var_dump(1 == TRUE); // TRUE - same as (bool)0 == FALSE var_dump(0 == FALSE); // FALSE - not same 1 and TRUE as // 1 is integer and TRUE is boolean var_dump(1 === TRUE); // FALSE - not same 0 and FALSE as 0 // is integer and FALSE is boolean var_dump(0 === FALSE); ?>
Producción:
bool(true) bool(true) bool(false) bool(false)
Nota: El operador === realiza una ‘comparación segura de tipos’, solo devolverá verdadero si ambos operandos tienen el mismo tipo y valor, mientras que si solo se va a comparar el valor == se usa.