Aprendiendo PHP: variables e iteradores

Índice

Introducción

En el anterior rootie de PHP hablamos de cómo echar a andar nuestro servidor local y crear el primer proyecto.  Hoy ya estamos en condiciones de aprender unas cuantas estructuras básicas de PHP, hoy vamos a hablar sobre variables e iteradores. La base de este lenguaje es C, por lo cual la sintaxis es muy parecida.

Nuestros ficheros tendrán la extensión .php y todos deben empezar por <?php y terminar con ?>

A continuación veremos la declaración de las variables en PHP y los iteradores/bucles básicos.

1) Variables

Declarar variables es tan fácil como escribir el símbolo del dólar ($) seguido del nombre que queramos. Nota: el nombre de una variable no puede empezar por un número. Una variable puede contener cualquier tipo de dato, que dependerá del valor que le asignemos:

2) Constantes

Las constantes son un tipo de variable cuyo valor no cambia a lo largo de la ejecución de nuestro script. Se declaran de la siguiente manera:

3) Comparadores

Existen una serie de operadores que nos permitirán comparar dos valores

Operador Nombre Resultado
$a == $b Igual TRUE si $a es igual a $b después de la manipulación de tipos.
$a === $b Idéntico TRUE si $a es igual a $b, y son del mismo tipo.
$a != $b Diferente TRUE si $a no es igual a $b después de la manipulación de tipos.
$a <> $b Diferente TRUE si $a no es igual a $b después de la manipulación de tipos.
$a !== $b No idéntico TRUE si $a no es igual a $b, o si no son del mismo tipo.
$a < $b Menor que TRUE si $a es estrictamente menor que $b.
$a > $b Mayor que TRUE si $a es estrictamente mayor que $b.
$a <= $b Menor o igual que TRUE si $a es menor o igual que $b.
$a >= $b Mayor o igual que TRUE si $a es mayor o igual que $b.
$a <=> $b Nave espacial Un entero menor que, igual a, o mayor que cero cuando $a es respectivamente menor que, igual a, o mayor que $b. Disponible a partir de PHP 7.
$a ?? $b ?? $c Fusión de null El primer operando de izquierda a derecha que exista y no sea NULL. NULL si no hay valores definidos y no son NULL. Disponible a partir de PHP 7.

Tabla extraída directamente de la documentación oficial de PHP.

4) Estructuras de control básicas

Todo script PHP está construido por una serie de sentencias. Una sentencia puede ser una asignación, una llamada de función, un ciclo, una sentencia condicional o incluso una sentencia que no hace nada (una sentencia vacía). Las sentencias generalmente finalizan con un punto y coma. Adicionalmente, las sentencias pueden agruparse en un conjunto de sentencias, encapsulándolas entre llaves ( {…} ). Por lo tanto, decimos que un grupo de sentencias es una estructura de control. Todas las estructuras de control están listadas en la documentación oficial, no obstante nosotros vamos a hablar de las más comunes.

4.1) If / Else-If / Else

If (si…) es el condicional por excelencia, permite ejecutar una parte del código si se cumple la condición establecida:

Else If (si no -> si…) se ejecuta cuando la primera parte del If no se cumple y queremos establecer una segunda condición aparte:

Else (si no…) es la última parte de un bloque if-elseif-else. Cuando no se cumple ninguna condición de nuestra estructura if-elseif, entramos en el Else:

Las expresiones de las condiciones pueden contener múltiples evaluaciones, utilizando && (Y) o || (O), por ejemplo:

Los operadores && (AND) y || (OR) son muy habituales.

  • && evalúa que se cumplan ambas expresiones. En nuestro ejemplo, tiene que cumplirse que $a sea mayor que $b y que $c sea estrictamente true.
  • || evalúa que se cumpla una u otra expresión. En nuestro ejemplo, tiene que cumplirse que $a sea menor que $b o que $c sea estricamente false.

4.2) Bucle For

Esta estructura nos permite ejecutar una parte del código un número conocido de veces. La sintaxis universal es:

parte1 es una expresión evaluada únicamente al principio del bucle. Por ejemplo, la asignación de un valor a una variable: $i=1.
parte2 es la expresión que marca el fin del bucle. Por ejemplo: $i <= 10.
parte3 es la expresión que se evalúa al final de cada iteración del bucle e indica la dirección del mismo. Por ejemplo: $i++. *Protip: la expresión $i++ aumenta en 1 el valor de la variable $i. (la dirección es hacia delante)

Así pues, os muestro un ejemplo de un for completo:

Las estructuras de control pueden anidarse entre sí, veamos un ejemplo de un condicional If dentro de un bucle For:

4.3) Bucle Foreach

El iterador Foreach es un bucle que se utiliza para recorrer arrays. Existen dos sintaxis:

Veamos un ejemplo:

 

4.4) Bucle While

El bucle While se repite siempre que se cumpla la condición proporcionada. La diferencia principal con el bucle For, es que podemos no conocer las iteraciones que ejecutará el bucle. En el primer ejemplo que hemos usado para el For, sabemos de antemano antes de ejecutar el código, que el bucle se ejecutará 10 veces (del 1 al 10). Sin embargo, el bucle While puede ejecutarse tantas veces sea necesario hasta que se cumpla – o no – una condición. Por supuesto esto no siempre es así, también podemos hacer un bucle While que se ejecutase del 1 al 10, pero no es su finalidad. La sintaxis del While es la siguiente:

Por ejemplo, nuestro amigo Homer estará encantado de repetir «¡Joróbate, Flanders!» mientras tenga voz y no se quede afónico:

4.5) Bucle Do-While

Es muy similar al bucle While. La principal diferencia es que la condición proporcionada se evalúa al terminar cada iteración, garantizando la ejecución de la misma. Por ejemplo:

4.6) Condicional múltiple Switch

El Switch es una de mis estructuras preferidas. Es una manera diferente de evaluar una expresión con varios valores diferentes a como lo haríamos con If-Else. El Switch te permite ejecutar la parte de código que evalúe como true la comparación en cada case.

¿Le preguntamos a Homer cuál es su bebida favorita?

En la línea 3 estamos definiendo la $bebida como ‘duff’. Podemos cambiar el valor de esa variable para conocer la respuesta de Homer. Me hubiera gustado hacer un ejemplo más entretenido utilizando funciones, pero este concepto lo veremos en el siguiente rootie de PHP.

 

Posted in PHP

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *