lunes, 26 de marzo de 2018

Comparar dos campos de texto con php

A la hora de presentar un formulario una de las comprobaciones típicas que se suele hacer es que el usuario escriba dos veces su email para que el email nos llegue correctamente y podamos contestar sin problemas al usuario. Por ejemplo en un formulario de registro a algún servicio web. Aquí os dejo dos formas de hacerlo con PHP, aunque seguro que hay mas; si sabéis otras formas no dudéis en dejármelo en los comentarios que será interesante para todos.


1. Comparación de strings con operadores igual (==)

A la hora de comparar variables, resulta sencillo cuando se trata de booleanos ( true/ false) o de integers, pero cuando se trata de strings (cadenas de  carácteres) o partes de strings  se puede complicar un poco.

La forma más común de comparar dos strings es con el operador ==. Si los dos strings son iguales, el condicional devuelve true:

if('hola' == 'hola'){

    echo "El string coincide";

} else {

    echo "El string no coincide";
}

Este tipo de comparación es sensible a mayúsculas y minúsculas, por lo que 'hola' == 'Hola' devolvería false.

Si todavía se quiere ser más estricto, se pueden emplear tres signos de igual, ===.

2. Strcmp

int strcmp (string $str1, string $str2)

Es la función más básica para comparar dos strings a nivel binario. Tiene en cuenta mayúsculas y minúsculas. Devuelve < 0 si el primer valor dado es menor que el segundo, > 0 si es al revés, y 0 si son iguales:

$var1 = "hola";

$var2 = "hola";

if (strcmp($var1, $var2) === 0){

    echo "Las palabras coinciden";

} else {

    echo "Las palabras no coinciden";

}   

Una cadena es mayor que otra en función de los códigos numéricos equivalentes de cada carácter, por ejemplo la letra D tiene el código 68 y d el código 100, o sea que es en cierto modo sensible a mayúsculas / minúsculas. En la práctica sólo se suelen utilizar estas funciones utilizando estructuras de control condicionales respecto al valor 0, como en el ejemplo anterior.

No hay comentarios:

Publicar un comentario