Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/08/2010, 09:04
Avatar de ElJavista
ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Respuesta: Diferencia entre == y ===

Es lógico que === sea más rápido. PHP tiene los tipos de variables dinámicos, eso a su vez que facilita también puede ser causa de muchos errores muy dificiles de detectar. Bien, entonces por qué la velocidad? Pues porque cuando usamos == ambas variables a compararse pueden ser de tipos distintos. El intérprete PHP tiene primero que indentificar los tipos y hacer (ignoro exactamente cómo) que ambas variables sean del mismo tipo para compararlas (obviamente es imposible comparar dos variables de distinto tipo). Esta conversión conlleva un tiempo más, lo cual no dura una eternidad, mucho menos. Así que se pueden relajar y usar == todo el tiempo, la diferencia es imperceptible. Pero, la pregunta es: cuando usar == y === respectivamente? Pues usa === cuando la comparación deba ser estricta. Un ejemplo típico es cuando se usa la función strpos, de una manera parecida a esto:

Código PHP:
$p strpos($texto'a');
if (
$p === false) echo 'No se encontró la letra "a" en la cadena'
La función strpos devuelve false cuando no encuentra la cadena a buscar, pero si la encuentra en la primera posición devuelve 0, el cual es equivalente a false. Este es un buen caso para ilustrar cuando es necesario el uso de ===. Ahora también puede usarse en el caso en que el programador sea tan paranoico que quiera hacer que su sistema sea 0.00001% (aproximadamente) más rápido que el de la competencia. Es una broma.

Espero que mis explicaciones hayan aclarado un poco el tema.