Condicionales en PHP

Las declaraciones condicionales son expresiones complejas compuestas por una condición y una serie de instrucciones simples encerradas por dos llaves que le indicaran a PHP en inicio y el final del bloque.

PHP primero evaluara la condición y establecerá su valor a verdadero (true) o falso (false). En caso de ser falso, PHP ignorara el bloque de instrucciones encerradas por dos llaves. Por el contrario si PHP evalúa la condición a true, se ejecutara el bloque de instrucciones.

Las dos funciones PHP mas utilizadas para crear condicionales son: if o switch. A continuación vemos su estructura.



1. Estructura

if (condition) {
    // Bloque de instrucciones
} elseif (condition) {
    // Bloque de instrucciones
} else {
    // Bloque de instrucciones
}
A través del bloque if podemos crear tantas condiciones como nos sean necesarias. Para ello primero creamos la primera condición con el bloque "if" y a continuación enlazamos tantos bloques "elseif" como condiciones necesitemos. Para terminar podemos crear un ultimo bloque "else" por si acaso no se cumple ninguna condición y en este caso se encetarían unas instrucciones por defecto.

switch (key) {
    case value1:
 // Bloque de instrucciones
 break;
    case value2:
 // Bloque de instrucciones
 break;
    ...
    ...
    ...
    default:
 // Bloque de instrucciones
 break;
}
Este bloque es similar al anterior pero con alguna diferencia. Aquí se evalúa el valor "key" y crearemos tantos casos como necesitemos. Si coincide el valor de algún caso "value1", value2" con la condición del switch "key" se ejecutara el bloque de instrucciones. Si por el contrario no coincide ningún caso, podemos crear un caso por defecto "default" para que ejecute una serie de instrucciones.



2. Operaciones de comparación

PHP nos permite comparar números o cadenas de texto para ver si son iguales, o si un numero es mayor que el otro o viceversa. Podremos realizar estas operaciones de comparación mediante los siguientes operadores PHP:

OperadorDescripción
==¿Los dos valores son iguales?
===¿Los dos valores son iguales en valor y tipo de datos?
>¿El primer valor es mayor al segundo?
>=¿El primer valor es mayor o igual al segundo?
<¿El primer valor es menor al segundo?
<=¿El primer valor es menor o igual al segundo?
!=  o  <>¿Son distintos los dos valores?
!===¿Son distintos en valor o tipo de datos?

Unos ejemplos de uso pueden ser los siguientes:

  • $a == $b
Si la variable $a es igual a la variable $b, la condicion se evaluara a true.


  • $tiempoA >= $tiempoB
Si la variable $tiempoA es mayor o igual a la variable $tiempoB, la condicion sera true.


  • $dia != 21
Si la variable $dia es distinto a 21, la condicion sera true.


  • $precio < 2000
Si la variable $precio es menor a 2000, la condicion sera true.




3. Comprobar contenido de una variable

Otra manera de crear condiciones es comprobar el contenido de una variable, para ello PHP nos proporciona las siguientes funciones:
  • isset($var) - Devolverá true si la variable "$var" existe, aunque no tenga ningún valor
  • empty($var) - Devolverá true si su valor es 0 o no contiene caracteres.

PHP también nos permite comprobar que tipo de datos contiene una variable mediante alguno de los siguientes métodos:
  • is_array($var) - Devuelve true si la variable es un array.
  • is_float($var) - Devuelve true si la variable es un float.
  • is_null($var) - Devuelve true si la variable es igual a 0.
  • is_numeric($var) - Devuelve true si la variable es un valor numérico.
  • is_string($var) - Devuelve true si la variable es una cadena de texto.

Por otra parte también podremos consultar si una condición de las anteriores es falsa o negativa. Para ello simplemente tendremos que utilizar un signo de exclamación delante de la expresión, de la siguiente manera:
  • !isset($var) - Devolverá true si la variable no existe.

Para conocer mas formas de trabajo con variable podemos visitar el siguiente enlace: Funciones de manejo de variables



4. Búsqueda de patrones

En ciertos casos necesitaremos buscar un patrón en una cadena de texto, como puede ser buscar una N dentro de un texto. A estos patrones se les conoce como expresiones regulares y dentro de estas expresiones regulares podremos hacer uso del asterisco para autocompletar dicha expresión. Es decir, si utilizamos (*.txt) PHP nos devolverá todos los archivos con extensión txt.

En el siguiente enlace podremos conocer todas las posibilidades al utilizar patrones: Sintaxis de patrones


4.1 Uso de caracteres especiales en patrones

La siguiente tabla muestra algunos de los caracteres especiales utilizados en PHP:

CarácterDescripción
^Busca un patrón al comienzo
$Busca un patrón al final
.Busca cualquier patrón 
?Busca un patrón o lo hace opcional
( )Engloba un conjunto literal de caracteres
[ ]Busca un conjunto opcional de caracteres
-Delimita un rango de caracteres 
+Busca una o mas veces un patrón
*Busca opcionalmente una o mas veces un patrón
{ , }Determina el numero mínimo y máximo de veces de un patrón

A continuación vemos algunos ejemplos:

EjemploResultado
^caTodas las palabras que empiecen por "ca"
$olTodas las palabras que terminen por "ol"
...Cualquier palabra que contenga 3 caracteres
a?El carácter "a" puede existir o no
(er)Palabras que contengan literalmente "er"
[er]Palabras que contengan opcionalmente los caracteres "e" y "r"
a-xTodos los caracteres desde "a" hasta "x"
b+El carácter "b" debe estar como mínimo una o varias veces
b*El carácter "b" puede estar una, varias o ninguna vez
a{2, 4}Palabras que contengan el carácter "a", mínimo 2 veces y máximo 4


4.2 Ejemplos de expresiones regulares


  • ^[A-Za-z].*
Podríamos dividir este patrón en dos partes: la primera ^[A-Za-z] indica que la cadena de texto a buscar debe empezar por una letra ya sea mayúscula o minúscula. Y con la segunda parte .* le indicamos a PHP que la cadena a buscar puede ser de uno o mas caracteres de longitud.


  • Silvia (Gomez | Romero)
Este patrón buscara el nombre literal de "Silvia" y dos posibles apellidos "Gomez" o "Romero". Por lo tanto buscara en la cadena de texto buscara coincidencias con "Silvia Gomez" y "Silvia Romero".


  • ^[0-9]{5}(\-[0-9]{4})?$
Este patrón es algo mas complicado que los anteriores por lo tanto vamos a dividirlo en partes:
  1. ^[0-9]{5} - Cualquier cadena de 5 números de longitud.
  2. (\-[0-9]{4})?$ - Con \- indicamos que en ese lugar debe haber un guión. Y con [0-9]{4} indicamos que tiene que haber una cadena de 4 números de longitud. Para terminar con ?$ indicamos el final del patrón y que este grupo de caracteres puede ser opcional.
Por lo tanto podremos tener coincidencias como: 55032, 55032-2013, ...


  • ^.+@.+\.com$
Este patrón nos puede servir para buscar correos electrónicos, por lo tanto vamos a dividirlo en partes:
  1. - Indicamos el inicio del patrón
  2. .+ - Cualquier cadena de caracteres entre el inicio y la @
  3. - Carácter literal en ese lugar
  4. .+ - Cualquier cadena de caracteres entre la @ y .com
  5. \.com - En ese lugar debe haber un .com literalmente
  6. - Indicamos el final del patrón a buscar


4.3 Expresiones regulares en funciones PHP

PHP nos proporciona funciones con la que podremos comprobar si un patrón coincide con una cadena de texto. Su formato de uso seria el siguiente:

  • preg_match("patron", $var);

El patrón a parte de ir encerrado entre comillas, deberá comenzar y finalizar con un delimitador que podrá ser cualquier carácter no alfanumérico excepto la barra \. Normalmente se utiliza una barra diagonal /. Vamos a ver un ejemplo:

  • preg_match("/^[A-Za-z].*/",  $nombres);

La función del ejemplo buscara coincidencias con el patrón indicado en la variable $nombres.

Para mas información sobre estas funciones visitar: Funciones PCRE.



5. Uso de múltiples comparaciones

En ocasiones nos encontraremos con que necesitamos comprobar mas de una condición a la vez, para ello PHP ofrece la posibilidad de juntar dos o mas condiciones mediante las siguientes palabras clave:

Palabra claveDescripción
andLas dos comparaciones deberán ser true
orUna de ellas deberá de ser true
xorSolo una de ellas deberá de ser true

Unos ejemplos de uso pueden ser los siguientes:

  • $edad > 23 and $edad < 40
En este ejemplo si la variable $edad contiene un numero mayor a 23 y menor a 40 las dos condiciones serán true y por lo tanto se ejecutara el código encerrado entre llaves.


  • $ciudad == "Teruel" or $ciudad == "Valencia"
En este ejemplo si la variable $ciudad contiene el nombre de Teruel o Valencia la condición se evalúa a true y se ejecutara el código entre llaves.


  • $sexo == "Masculino" xor $sexo == "Femenino"
En este caso la variable $sexo solo puede ser Masculino o Femenino, si coincide con una de las dos la expresión sera true.


PHP nos ofrece la posibilidad de encadenar tantas comparaciones como nos sean necesarias teniendo en cuenta que primero se evaluaran las "and", las segundas en evaluarse serán las "or" y para finalizar por ultimo se evaluaran las "xor".








No hay comentarios:

Publicar un comentario