Usuario:ManuelRomero/php/sentencias
De WikiEducator
< Usuario:ManuelRomero | php
Revisión a fecha de 10:19 15 oct 2014; ManuelRomero (Discusión | contribuciones)
Saltar a: navegación, buscar
BLOQUE 2 PHP: PROGRACION DE APLICACIONES WEB EN ENTORNO SERVIDOR
Contenido
¡El servidor te responde
PHP Un lenguaje de script al lado del servidor
Arquitectura web | El Lenguaje | sentencias | arrays | BasesDatos | Autentificacion | Cookies | Sesiones | Ejemplo tienda | Volver
Estructuras de control 1
A continuación veremos las estructuras de control Son de tres tipos
- Selección
- Iteración
- Secuenciales
- Para construirlas necesitamos operadores
Selección if
- Sentencia que evlúa una expresión booleana y ejectua o no en función de que dicha expresión sea true o false
if (condicion) Sentencia 1;
if (condicion){ Sentencia_1; Sentencia_2; }
if (expresion) Sentencia_1; else Sentencia_2;
- También existe la opción elseif donde aportaremos una condición que se ha de cumplir para que se ejectuten las sentencias que a continuación acompañan.
if (expresion){ sentencias; } elseif (expresion){ sentencias; } else{ sentencias; }
- Alternativamente puede usarse esta sintaxis que es usada cuando se quiere intercalar condigo html fuera del php.
- También se puede usar la sintaxis vista anteriormente, pero parece que esta quede más compacta.
if (condicion): Sentencia 1; endif; </div> <div class="slide">
- Ahora lo vemos con código html
<?php if (true): ?> <h1>Esta frase seguro que aparece ahor</h1> <!--escribirmos código html --> <?php else: ?> <h1>Aquí escribiré poco ya que no va a aparecer nada</h1> <!--escribirmos código html --> <?php endif ?>
Operadores ternario
- Es una forma más compacta de un if else con una única instrucción.
Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
Seleccion switch
- Este es un selector múltiple
- La sentencia case puede albergar cualquier valor de un tipo simple, no está limitado a enteros como en otros lenguajes
<?php switch ($nombre){ case "Maria": echo "eres una chica"; break; case "Pedro"; echo "eres una chico"; break; default: echo "no se qué nombre tienes"; } ?>
iteracion while
- Como en todos los bucles debemos siempre tener encuenta
- inicializar la variable de control
- acutalizarla correctamente dentro del bucle
- realizar de forma correcta la evaluación de condiciòn (< o <=), (> o >=), ...
<?php $i = 1; while ($i <= 10) { echo "iteración número ."$i++; } ?>
- Alternativamente podemos usar la siguiente sintaxis
$i = 1; while ($i <= 10): $i++; echo "iteración número ."$i; endwhile; ?>
iteracion do-while
- Este tipo de bucle donde seguro que al menos se ejectua un iteración
- Respecto al anterior nos ahorra una comparación.
<?php $num=10; $resultado=1; do { $resultado:=$resultado*$num; $num--; } while ($num>0); ?>
- Esta es la única sintaxis posible con este t tipo de sentencia iterativa-
iteracion for
- Es un bucle de tipo contador
for (expresion_inicial; condicion;expresion_actualizar){ sentencias; }
- tiene tres partes
- expresion_inicial
- Se ejecuta una sóla vez al comienzo del bucle. se usa para inicializar variables
- condicion
- Es una expresión booleana que se evalúa en cada interación
- Si da un valor false, ya no se ejectua ninguna vez
- Si no hay expresión se toma como true
- En este caso para que el bucle no sea infinito deberá llevar algún break (instrucción de terminación de bloque) en algún momento
<?php for ($a=0; ;$a++){ echo "$a*$a=".$a*$a."<br>"; if ($a==10) break; } ?>
- expresion_actualizar
- Esta expresión actualiza el valor de alguna/as variables
- Se ejecuta en cada interacion
- El ejemplo anterior
<?php for ($a=0;$a<10 ;$a++){ echo "$a*$a=".$a*$a."<br>"; } ?>
Operadores
- Son símbolos que realizan acciones sobre operandos y dan como resultado un valor
- Tenmos diferentes tipos de operadores en función del tipo de operandos y del resultado
- operadores aritméticos (+,-,*,/,%,**, ++, --)
- Retorna un valor numérico
- el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
$a=5; if ($a++==5) echo '$a que vale '.$a.' dice que vale 5 ???? <br>' . 'Esto es por que primero compara y luego incrementa<br>'; echo 'ahora $a vale '.$a.'<br>'; if (++$a==6) echo 'esto nunca saldrá ya que $a se incrementa antes de comparar'; else echo 'efectivamente ahora $a ya no vale 6 sino '.$a.'<br>'; ?>
- que genera la siguiente salida
$a que vale 6 dice que vale 5 ???? Esto es por que primero compara y luego incrementa ahora $a vale 6 efectivamente ahora $a ya no vale 6 sino 7
- operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
- Este tipo de operadores genera un booleano como resultado de evaluar la expresión
- Observar == que es igual, es decir el mismo valor respecto a === que es exactamente igual lo que quiere decir el mismo valor y tipo
$num=1; if ($num==true) echo '$num es igual a true<br>'; if ($num===true){ echo "esto nunca se ejecutará"; }else echo '$num no es exactamente igual a true';
- Genera la siguiente salida
$num es igual a true $num no es exactamente igual a true
- opreadores de concatenacón( .) concatena cadena de caracteres.
- El operador + no está sobre cargado, observa el siguiente código
$nombre="Maria"; $apellido = " de la Oh"; $nombreCompleto = $nombre.$apellido; echo "el valor de nombre completo es $nombreCompleto ---<br>"; $nombreCompleto = $nombre+$apellido; echo "el valor de nombre completo es $nombreCompleto --<br>";
- La salida sería
el valor de nombre completo es Maria de la Oh --- el valor de nombre completo es 0 --
- operadores de asignacion (= , =>)
- Se pueden combinar con los aritméticos (+=, *=, ...) y con los de concatenación (.=)
- En este caso el valor de la variable de la izquierda se toma como primero operando
<?php $b=1; for ($a=0;$a<10;$a++){ $b*=10; echo 'valor de $b ='.$b.'<br>'; } ?>
- Genera la siguiente salida
valor de $b =10 valor de $b =100 valor de $b =1000 valor de $b =10000 valor de $b =100000 valor de $b =1000000 valor de $b =10000000 valor de $b =100000000 valor de $b =1000000000 valor de $b =10000000000
- operadores de ejecución (``)
- PHP proporciona un operador especial que permite ejecutar sentencias
- Observa el siguiente código
<?php $Discos = `df`; echo "<pre>$Discos</pre>"; ?>
- Genera la siguiente salido
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda5 86378608 6072360 75895384 8% / none 4 0 4 0% /sys/fs/cgroup udev 4023720 4 4023716 1% /dev tmpfs 806904 1384 805520 1% /run none 5120 0 5120 0% /run/lock none 4034504 6588 4027916 1% /run/shm none 102400 28 102372 1% /run/user /dev/sda7 101797224 40480360 56122728 42% /home
- operadores lógicos (and,&&, or, ||, xor !)
- Funcionan por cortocircuito
- El operador xor da verdad si los operando son de diferente valor uno true y el otro false
- La notación and y && representan el mismo operador, igual ocurre con or y ||