2. Competencia del Ciclo
Identifica las diferentes estructuras de
control, reconociendo la utilidad de estas y su
aplicación, para construir páginas con
fundamentos de programación en dream
Weaver.
3. Estructuras de Control
Todo lenguaje de programación dispone de órdenes de control
de flujo, que permite al programa tomar decisiones lógicas según
reciba unos parámetros o otros: si llueve coge el paraguas; pero
si hace sol vete a la playa.
Las posibilidades que ofrece php son:
if/else
if/elseif/else
switch
do/while
while
for
4. Estructuras de Control
if else
Es la estructura de control mas corriente: La declaración if obliga a
evaluar la expresión entre paréntesis; si se evalua como verdadera,
se ejecuta un bloque de código; si se evalua como falsa, el bloque
de código es ignorado. De esta forma nuestro script puede tomar
decisiones:
<?php
$edad = 14;
if ($edad >= 18) {
echo “Mayor de Edad";
}
else {
echo “Menor de Edad";
}
?>
5. Estructuras de Control
Opcionalmente podemos usar una declaración else, que indicará
el código que debe ejecutarse si la condición no es cumplida. La
declaración else no es obligatoria, y no puede estar a su vez
condicionada: else (otra condición) {...} sería inválido.
<?php
if ($user == "pepe") {
// código especial para el usuario pepe
}
// código para todos los usuarios, sean o no pepe
?>
El código condicionado a la cláusula if solo se evalua si la
condición (que siempre debe estar entre paréntesis) se evalua
como verdadera. Si no se cumple, la ejecución pasa al siguiente
bloque de código.
Solo es estrictamente necesario el uso de llaves {} encerrando el
código sujeto a la condición cuando ocupa mas de una línea.
6. Estructuras de Control
Condiciones complejas
Mediante el uso de operadores podemos
introducir condiciones complejas,
agrupándolas con parentesis:
<?php
if (($edad >= 18)&& ($carnet_conducir == 1))
{
}
?>
7. Estructuras de Control
if elseif else
Exactamente igual que la anterior, solo que evaluando mas de una
condición:
<?php
if ($user == "pepe") {
// codigo para pepe
}
elseif ($user == "juan") {
// codigo para juan
}
else {
// codigo para quienes no son juan ni pepe
}
?>
8. Estructuras de Control
switch
switch es una alternativa quizas mas legible cuando necesitamos evaluar una
variable frente a multiples valores posibles:
<?php
$op = "a";
switch ($op) {
case "a":
// código que se ejecuta si $op vale "a"
break;
case "b":
// código que se ejecuta si $op vale "b"
break;
case "c":
// código que se ejecuta si $op vale "c"
break;
default:
// código a ejecutar por defecto si no se cumple ninguna condición
}
?>
El uso de break; es necesario, ya que en la estructura switch una vez cumplida una condición se ejecutan
el resto de declaraciones (incluso las comprendidas en los casos que siguen). La orden break evita esto
saltando fuera del switch y continuando la ejecución del resto del script. Si en lugar de break usamos exit,
el resto del script no se ejecutará.
9. Estructuras de Control
bucles. While
A diferencia de los controles condicionales simples vistos hasta
ahora, los bucles toman otro tipo de decisiones: si se da la
condición, ¿cuantas veces he de ejecutar esta parte de código ?
<?php
$i=1;
while ($i <=10) {
echo "$i<br>";
$i++;
}
?>
10. Estructuras de Control
Lo que traducido a lenguaje llano, viene a querer decir: mientras
la variable $i tenga un valor menor de 10 ($i<=10), imprime $i y
una nueva línea.
Para que el bucle funcione correctamente necesitamos cumplir
dos condiciones. La primera, obvia, que $i sea inicialmente
menor de 10. Si es inicialmente mayor, la condición no se
cumple, y el bucle no se ejecuta.
La segunda, que a cada ejecución del código $i aumente de
valor ($i++), lo que es imprescindible, ya que en caso contrario
(si $i valiese siempre 1) la condición sería siempre cierta y no
podríamos salir nunca del bucle.
while tiene también una sintaxis alternativa:
while (expr): sentencia ... endwhile;
11. Estructuras de Control
Do while
La única diferencia que existe con el anterior es que aqui la
condición se evalúa despues de ejecutar el código, por lo que el
bucle será efectivo al menos una vez:
<?php
$i=11;
do
{
echo "$i<br>";
$i++;
}
while ($i <=10);
?>
12. Estructuras de Control
For
<?php
for($i=1; $i<=10; $i++) {
echo "$i<br>";
}
?>
Similar en su funcionalidad a while, el bucle for toma
tres parámetros, separados los dos primeros por
punto y coma: valor inicial de la variable de control,
valor final y incremento de la misma.
13. Funciones para String
Calculando la longitud de nuestra cadena
La función strlen nos facilita la longitud de una
cadena de texto:
strlen (string)
<?php
$cadena = "hola como te va";
$longitud = strlen($cadena);
echo $longitud; // 15
$cadena = "hola como te va"; // un espacio extra
$longitud = strlen($cadena);
echo $longitud; // 16
?>
14. ReflexiónReflexión
Preguntas Generadoras
¿Qué es una estructura de control?
¿Qué es la estructura For?
¿Qué es la estructura If?
¿Qué es la estructura While?
¿Qué es la estructura Do While?
15. Formularios
Envío y recepción de datos
El lenguaje PHP nos proporciona una
manera sencilla de manejar formularios,
permitiéndonos de esta manera procesar la
información que el usuario ha introducido.
Al diseñar un formulario debemos indicar la
página PHP que procesará el formulario, así
como en método por el que se le pasará la
información a la página.
16. Formularios
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
Introduzca su nombre:
<FORM ACTION="procesa.phtml" METHOD="GET">
<INPUT TYPE="text" NAME="nombre"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
Al pulsar el botón Enviar el contenido de cuadro de texto es
enviado a la página que indicamos en el atributo ACTION de la
etiqueta FORM.
17. Formularios
En versiones anteriores a 4.2.0 PHP creaba una
variable por cada elemento del FORM, esta variable
creada tenía el mismo nombre que el cuadro de
texto de la página anterior y el valor que habíamos
introducido. Pero por razones de seguridad a partir
de entonces para acceder a las variables del
formulario hay que usar el array de parámetros
$_POST[] o $_GET[] dependiendo del método
usado para enviar los parámetros.
En este ejemplo se ha creado una entrada en el
array $_GET[] con el índice 'nombre' y con el valor
que haya introducido el navegante.
19. Method GET y POST
En la página anterior hemos comentado
que los datos de un formulario se envía
mediante el método indicado en el
atributo METHOD de la etiqueta FORM, los
dos métodos posibles son GET y POST.
La diferencia entre estos dos métodos
radica en la forma de enviar los datos a la
página, mientras que el método GET envía
los datos usando la URL, el método POST
los envía por la entrada estándar STDIO.
20. Method GET y POST
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="GET">
Introduzca su nombre:<INPUT TYPE="text"
NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text"
NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
21. Method GET y POST<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
<FORM ACTION="procesa2.phtml" METHOD="POST">
Introduzca su nombre:<INPUT TYPE="text"
NAME="nombre"><BR>
Introduzca sus apellidos:<INPUT TYPE="text"
NAME="apellidos"><BR>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>
</body>
</html>
22. Method GET y POST procesa2.phtml
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<H1>Ejemplo de procesado de formularios</H1>
El nombre que ha introducido por GET es: <?php
echo $_GET['nombre']," ",$_GET['apellidos'] ?><br>
El nombre que ha introducido por POST es: <?php
echo $_POST['nombre']," ",$_POST['apellidos'] ?>
<br>
</body>
</html>