Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/03/2012, 16:35
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿Es seguro === para paswords?

Lo que pasa es que strcmp no es para ver si dos strings son iguales (sí tiene esa facilidad) pero es más bien para que veas si un string se parece a otro.

Recuerda que un string, es un array de caracteres, y un carácter no es más que un número para la maquina.

strcmp te devuelve -1, sí el string1 es menor al string2, 0, si son iguales, y 1 si es mayor, por lo que este ejemplo te debe de ayudar a distinguir:

Código PHP:
Ver original
  1. $str1 = 'a';
  2. $str2 = 'b';
  3.  
  4. var_dump(strcmp($str1, $str2)); // -1
  5. var_dump($str1 === $str2); // false
  6. var_dump($str1[0] === $str2[0]); // false

Por lo que puedes ver los usos diferentes de cada uno, internamente PHP al comparar dos strings hace uso de strcmp (o sea compara byte por byte), por lo que es igual que uses cualquiera de los dos (ya sea == o strcmp) para obtener el resultado.

Saludos.