php - not - ¿Qué significa "==="?
php is null or empty (10)
El signo triple igual === comprueba si dos variables son iguales y del mismo tipo.
Me he dado cuenta de que alguien usa el operador PHP ===
y no puedo entenderlo. Lo he intentado con una función, y corresponde de una manera loca.
¿Cuál es la definición de este operador? Ni siquiera puedo encontrarlo en la declaración de los operadores PHP.
$a === $b (Identical)
VERDADERO si
$a
es igual a$b
, y son del mismo tipo. (introducido en PHP 4)
"===" haciendo coincidir el valor de la variable y el tipo de datos de la variable.
En PHP puede comparar dos valores usando el operador == o el operador ===. La diferencia es esta:
PHP es un lenguaje dinámico e interpretado que no es estricto en los tipos de datos. Significa que el lenguaje en sí intentará convertir tipos de datos, siempre que sea necesario.
echo 4 + "2"; // output is 6
El resultado es el valor entero 6, porque +
es el operador de suma numérica en PHP, por lo que si le proporciona operandos con otros tipos de datos, PHP primero los convertirá a su tipo apropiado ("2" se convertirá a 2) y luego realiza la operación.
Si usa == como el operador de comparación con dos operandos que pueden estar en diferentes tipos de datos, PHP convertirá el segundo tipo de operando, en el primero. Asi que:
4 == "4" // verdadero
PHP convierte "4" a 4 y luego compara los valores. En este caso, el resultado será verdadero.
Si usa === como operador de comparación, PHP no intentará convertir ningún tipo de datos. Entonces, si los tipos de operandos son diferentes, entonces NO son idénticos.
4 === "4" // falso
Para PHP, hay muchos significados diferentes que un cero puede tomar
- puede ser un booleano falso
- podría ser un valor nulo
- Realmente podría ser un cero
Entonces, se agrega === para garantizar que el tipo y el valor sean los mismos.
Puedes leer here , breve resumen:
$ a == $ b Igual VERDADERO si $ a es igual a $ b después del malabarismo de tipo.
$ a === $ b Idéntico VERDADERO si $ a es igual a $ b, y son del mismo tipo.
Ver Double and Triple es igual al operador en PHP que obtuve para buscar en Google en "PHP three equals operator".
En un momento dice que:
Un signo doble = es una comparación y prueba si la variable / expresión / constante a la izquierda tiene el mismo valor que la variable / expresión / constante a la derecha.
Un signo triple = es una comparación para ver si dos variables / expresiones / constantes son iguales Y tienen el mismo tipo, es decir, ambas son cadenas o ambas son números enteros.
También da un ejemplo para explicarlo.
Verá este operador en muchos lenguajes de tipado dinámico, no solo en PHP.
==
intentará convertir lo que sea que esté tratando en tipos que pueda comparar.
===
comparará estrictamente el tipo y el valor.
En cualquier lenguaje de tipado dinámico, debe tener cuidado con ==, puede obtener algunos errores interesantes.
El ternario ===
es menos conveniente, pero es más seguro. Para las comparaciones, siempre debe pensar un poco más si debe ser ===
o ==
$ a == $ b Igual VERDADERO si $ a es igual a $ b, excepto (verdadero == -1) que sigue siendo verdadero.
$ a === $ b Idéntico VERDADERO si $ a es igual a $ b, y son del mismo tipo.
> "5" == 5;
True
> "5" === 5;
False
$x == $y
es VERDADERO si el valor de $ x y $ y es el mismo:
$x = 1; //int type
$y = "1"; //string type
if ($x == $y) {
// This will execute
}
$x === $y
TRUE si el valor de $ x y $ y son iguales y el tipo de $ x y $ y son los mismos:
$x = 1; //int type
$y = "1"; //string type
if ($x === $y) {
// This will not execute
}