Hola a tod@s,

Hoy continuamos con nuestro curso que dejamos el miércoles pasado con su sexta entrega, Desarrollo Web con PHP y MySQL (VI), donde estuvimos viendo como se trabaja con Arrays (Matrices) en PHP.

Estuvimos viendo como se creaban, como les cambiábamos los índices, como los imprimíamos por pantalla, como accedíamos a sus elementos, como les añadíamos elementos nuevos, como eliminábamos elementos, lo vaciábamos o eliminábamos el array completamente.

A parte de todo esto, vimos muchos métodos para trabajar más fácilmente con ellos, por ejemplo, vimos que con array_merge() nos permitía combinar 2 arrays en 1.

Más tarde mostramos como crear arrays multidimensionales (más de 1 dimensión) y como acceder a sus elementos. También vimos como ordenar todos los elementos de un array mediante métodos de ordenación como sort(), rsort(), asort(), arsort(), ksort() i krsort().

También vimos métodos nuevos para transformar arrays en cadenas de caracteres y viceversa con los métodos implode() y explode().

En el ejemplo que vimos (Ejemplo de envío de formulario), aplicamos las funciones que habíamos visto y pudimos comprobar cómo trabajaba PHP con arrays y los nuevos métodos aprendidos de forma práctica.

Hoy continuaremos con el estudio de las Estructuras de Control en PHP.

Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa en PHP.

Con las estructuras de control se puede:

  • De acuerdo a una condición, ejecutar un grupo u otro de sentencias.
  • Ejecutar un grupo de sentencias mientras exista una condición.
  • Ejecutar un grupo de sentencias hasta que exista una condición.
  • Ejecutar un grupo de sentencias un número determinado de veces (Bucle).

Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis. La mayoría de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes naturales escritos. Por eso, cada lenguaje tiene una sintaxis propia para expresar la estructura.

Siguiendo la numeración de capítulos del curso, continuamos con el capítulo 9.

9. Estructuras de Control

Las estructuras de control en PHP, se pueden dividir en tres tipos o categorías:

  • Las condicionales
  • Los bucles
  • Los saltos

9.1 Condicionales

Una sentencia condicional es una instrucción o grupo de instrucciones que se pueden ejecutar o no en función del valor de una condición.

9.1.1 Condición IF

Se trata de una estructura de control que permite redirigir un curso de acción según la evaluación de una condición simple, sea falsa o verdadera.

9.1.2 Condición IF-ELSE

Si la condición es verdadera, se ejecuta el bloque de sentencias 1, de lo contrario, se ejecuta el bloque de sentencias 2.

 9.1.3 Condición ELSEIF

Es como juntar dos estructuras IF-ELSE seguidas y su punto de final de la primera e inicio de la segunda es la palabra ELSEIF (también se puede escribir con un espacio, ELSE IF).

9.1.4 Condición SWITCH

La sentencia SWITCH es similar a una serie de sentencias IF en la misma expresión. En muchas ocasiones, es posible que se quiera comparar la misma variable (o expresión) con muchos valores diferentes, y ejecutar una parte de código distinta dependiendo de a qué valor es igual.

La palabra reservada BREAK termina la ejecución de la estructura actual. BREAK acepta un argumento numérico opcional el cual indica de cuantas estructuras anidadas encerradas se debe salir.

Si por ejemplo tenemos una estructura del tipo IF-ELSE, y en su Sentencia 1 (Si la condición es verdadera) tenemos otra estructura del tipo switch, podemos poner un BREAK 1 dentro del SWITCH para salir solamente del SWICTH, pero si ponemos BREAK 2, saldremos del Switch y del IF-ELSE al mismo tiempo.

9.2 Bucles

Un bucle o ciclo, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.

Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro.

9.2.1 Bucle FOR

Los bucles FOR son los más complejos en PHP. Se comportan como sus homólogos en C. La sintaxis de un bucle FOR es:

La primera expresión (expresión inicial) es evaluada (ejecutada) una vez incondicionalmente al comienzo del bucle.

En el comienzo de cada iteración(repetición), se evalúa Condición. Si se evalúa como TRUE, el bucle continúa y se ejecutan la/s sentencia/s anidada/s. Si se evalúa como FALSE, finaliza la ejecución del bucle.

Al final de cada iteración, se evalúa (ejecuta) Expresión final (Normalmente es un incremento o decremento).

Todos estos ejemplos muestran los números del 1 al 10 utilizando el bucle FOR:

Los bucles FOR son muy útiles para recorrer Arrays y, por ejemplo, buscar elementos fácilmente:

9.2.2 Bucle FOREACH

Es una estructura de control pensada solo para trabajar con Arrays. Nos permite iterar de manera sencilla para cada valor de un array.

Su sintaxis es:

Con este formato, en cada ciclo del bucle, le uno a uno los elementos del Array, y el valor actual es asignado a la variable $valor.

Un ejemplo simple sería:

Otro ejemplo más complejo, incluso guardando los índices de cada elemento, sería:

9.2.3 Bucle WHILE

Los bucles WHILE son el tipo más sencillo de bucle en PHP. La forma básica de una sentencia WHILE es:

El significado de una sentencia WHILE es simple. Le dice a PHP que ejecute las sentencias anidadas, cuando la Condición de WHILE se evalúe como TRUE. El valor de la expresión es verificado cada vez al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentencias anidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que PHP ejecuta las sentencias contenidas en el bucle es una iteración).

A veces, si la expresión WHILE se evalúa como FALSE desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez.

9.3 Saltos

Los saltos se utilizan para controlar cuando se puede salir de algún bucle o una estructura de control condicional.

En PHP encontramos tres tipos de saltos, que son los siguientes.

9.3.1 Continue

Se utiliza dentro de la estructuras de bucle para saltarse la iteración actual, para continuar con la evaluación de la condición i después volver a comenzar en la siguiente iteración.

 9.3.2 Break

Finaliza la ejecución de una determinada estructura de control.

 9.3.3 Exit

Finaliza la ejecución de todo un script (programa) PHP.

 9.4 Funciones de validación

PHP dispone de una serie de funciones que se utilizan para validar datos de formularios.

9.4.1 Empty()

Verifica si una variable tiene un valor diferente a 0, o si es una cadena vacía.

  • Devuelve TRUE si la variable NO tiene valor (0 (cero) o cadena vacía).
  • Devuelve FALSE si la variable SI tiene valor.

Este es un ejemplo de captura de datos desde una página HTML:

HTML (envia.html)

PHP (procesa.php)

9.4.2 Isset()

Hace el contrario que empty(), pero con una ligera diferencia:

  • Devuelve TRUE si la variable SI tiene un valor (incluyendo el 0 (cero) o cadena vacía, como valor).
  • Devuelve FALSE si la variable NO tiene valor.

 9.4.3 Is_numeric()

Comprueba que lo que han introducido o el contenido de una variable es un valor numérico correcto.

  • Devuelve TRUE si la variable SI tiene un valor numérico válido.
  • Devuelve FALSE si la variable NO tiene valor numérico correcto.

9.4.4 Is_array()

Comprueba si una variable es un array.

  • Devuelve TRUE si la variable SI es un array.
  • Devuelve FALSE si la variable NO es un array.

9.4.5 Checkdate()

Comprueba si una fecha es válida.

  • Devuelve TRUE si la fecha SI es válida.
  • Devuelve FALSE si la fecha NO es válida.

Para que una fecha sea válida:

  • Años: Entre el año 1 y 32767
  • Meses: Entre 1 y 12
  • Días: En función del Mes (28/29, 30 o 31 días).

      9.5 Ejemplo de envío de formulario

En este ejemplo os mostramos como usar todas las funciones que hemos visto en este capítulo. En este ejemplo tenemos un archivo HTML con un FORM para enviar información a otra página PHP que la procesará.

envia_prueba_funciones.html

El formulario lo he introducido en una tabla para que queden todos los INPUTS bien alineados y tenga un aspecto más profesional.

procesa_prueba_funciones.php

 

Hasta aquí esta parte del curso Desarrollo Web con PHP y MySQL. La semana próxima empezaremos a ver cómo crear plantillas para webs integrando en una única página, varias páginas diferentes por separado y como usar archivos externos.

A pare de eso también veremos que es el Buffer de salida y funcione para controlarlo con PHP.

Hasta entonces un saludo a tod@s y no os olvidéis dejar vuestros comentarios o incidencias sobre el curso.

¡Ánimo!

Info | PHP.NET
Curso | Desarrollo Web con PHP y MySQL