Comparando cadenas con strcmp – PHP Tips

Una de las maneras mas sencillas de comparar 2 cadenas con PHP es mediante strcmp.  La comparación entre las 2 cadenas se realiza de manera binaria y es sensible a mayúsculas y minúsculas.

Uso:

int strcmp(string1, string2);

Valores devueltos:

< 0 si string1 es menor que string2, >0 si string1 es mayor que string2 y 0 si son iguales.

Mucho cuidado con:

Una de las cosas con las que hay que tener cuidado a la hora de usar el strcmp es que cuando las 2 cadenas son iguales devuelve 0. Veamos el siguiente ejemplo:

$string1 = "Hola";

$string2 = "Hola";

$string3 = "Adios";

if (strcmp($string1, $string2)) {

echo "Las cadenas son iguales";

} else {

echo "Las cadenas no son iguales";

}

// Esto devolvera "Las cadenas no son iguales";

if (strcmp($string1, $string3)) {

echo "Las cadenas son iguales";

} else {

echo "Las cadenas no son iguales";

}

// Esto devolverá "Las cadenas son iguales";

En el ejemplo anterior al comparar dos cadenas iguales nos dice que no son iguales y si comparamos dos distintas nos dicen que son iguales, esto es debido a que strcmp devuelve un numero que es 0 cuando son iguales, el cual se interpreta dentro del if como falso, y cuando son distintas devuelve un numero que no es 0 el cual es interpretado como verdadero.

El uso adecuado dentro de un if del strcmp es:


$string1 = "Hola";

$string2 = "Hola";

$string3 = "Adios";

if (strcmp($string1, $string2) === 0) {

echo "Las cadenas son iguales";

} else {

echo "Las cadenas no son iguales";

}

// Ahora si devolvera que las cadenas son iguales

Mas información: http://us1.php.net/manual/es/function.strcmp.php

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s