start not is_null empty php operators comparison-operators identity-operator

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)

Documentos de PHP


"===" 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

  1. puede ser un booleano falso
  2. podría ser un valor nulo
  3. 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 ==


http://www.php.net/ternary

$ 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 }