Diferencia entre revisiones de «Usuario:ManuelRomero/php/Objetos»
De WikiEducator
< Usuario:ManuelRomero | php
(Página creada con «__NOEDITSECTION__ {{:Usuario:ManuelRomero/php/nav}}») |
|||
| (5 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 2: | Línea 2: | ||
{{:Usuario:ManuelRomero/php/nav}} | {{:Usuario:ManuelRomero/php/nav}} | ||
| + | <!--__NOEDITSECTION__--> | ||
| + | {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" | ||
| + | | width="100%" valign="top" style="padding: 0; margin:0px;" | | ||
| + | {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:1px; border-color:#0066FF;" | ||
| + | | width="100%" valign="top" style="padding: 0; margin:0px;" | | ||
| + | <span style="background:#FFFF99"> | ||
| + | </span> | ||
| + | [[Imagen:DWES_TituloTema3.gif|center]] | ||
| + | |} | ||
| + | |||
| + | |||
| + | <div class="slide"> | ||
| + | <!--4----------------------------------> | ||
| + | |||
| + | === 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 | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ===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 | ||
| + | <source lang=php> | ||
| + | if (condicion) | ||
| + | Sentencia 1; | ||
| + | </source> | ||
| + | <hr> | ||
| + | <source lang=php> | ||
| + | if (condicion){ | ||
| + | Sentencia_1; | ||
| + | Sentencia_2; | ||
| + | } | ||
| + | </source> | ||
| + | <hr> | ||
| + | <source lang=php> | ||
| + | if (expresion) | ||
| + | Sentencia_1; | ||
| + | else | ||
| + | Sentencia_2; | ||
| + | </source> | ||
| + | *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. | ||
| + | <source lang=php> | ||
| + | if (expresion){ | ||
| + | sentencias; | ||
| + | } | ||
| + | elseif (expresion){ | ||
| + | sentencias; | ||
| + | } | ||
| + | else{ | ||
| + | sentencias; | ||
| + | } | ||
| + | </source> | ||
| + | |||
| + | *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. | ||
| + | |||
| + | <source lang=php> | ||
| + | if (condicion): | ||
| + | Sentencia 1; | ||
| + | endif; | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | </source> | ||
| + | *Ahora lo vemos con código html | ||
| + | <source lang=php> | ||
| + | <?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 ?> | ||
| + | </source> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ===Operadores ternario=== | ||
| + | *Es una forma más compacta de un if else con una única instrucción. | ||
| + | Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion | ||
| + | </div> | ||
| + | |||
| + | |||
| + | ===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 | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | switch ($nombre){ | ||
| + | case "Maria": | ||
| + | echo "eres una chica"; | ||
| + | break; | ||
| + | case "Pedro"; | ||
| + | echo "eres una chico"; | ||
| + | break; | ||
| + | default: | ||
| + | echo "no se qué nombre tienes"; | ||
| + | } | ||
| + | ?> | ||
| + | </source> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <div class="slide"> | ||
| + | ===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 >=), ... | ||
| + | |||
| + | <source lang=php> | ||
| + | <?php | ||
| + | $i = 1; | ||
| + | while ($i <= 10) { | ||
| + | echo "iteración número ."$i++; | ||
| + | } | ||
| + | ?> | ||
| + | </source> | ||
| + | *Alternativamente podemos usar la siguiente sintaxis | ||
| + | <source lang=php> | ||
| + | $i = 1; | ||
| + | while ($i <= 10): | ||
| + | $i++; | ||
| + | echo "iteración número ."$i; | ||
| + | endwhile; | ||
| + | ?> | ||
| + | </source> | ||
| + | ===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. | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | $num=10; | ||
| + | $resultado=1; | ||
| + | do { | ||
| + | $resultado:=$resultado*$num; | ||
| + | $num--; | ||
| + | } while ($num>0); | ||
| + | ?> | ||
| + | </source> | ||
| + | *Esta es la única sintaxis posible con este t tipo de sentencia iterativa- | ||
| + | |||
| + | <div class="slide"> | ||
| + | ===iteracion for=== | ||
| + | *Es un bucle de tipo contador | ||
| + | <source lang=php> | ||
| + | for (expresion_inicial; condicion;expresion_actualizar){ | ||
| + | sentencias; | ||
| + | } | ||
| + | </source> | ||
| + | *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 | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | for ($a=0; ;$a++){ | ||
| + | echo "$a*$a=".$a*$a."<br>"; | ||
| + | if ($a==10) | ||
| + | break; | ||
| + | } | ||
| + | ?> | ||
| + | </source> | ||
| + | ;expresion_actualizar | ||
| + | :Esta expresión actualiza el valor de alguna/as variables | ||
| + | :Se ejecuta en cada interacion | ||
| + | </div> | ||
| + | *El ejemplo anterior | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | for ($a=0;$a<10 ;$a++){ | ||
| + | echo "$a*$a=".$a*$a."<br>"; | ||
| + | } | ||
| + | ?> | ||
| + | </source> | ||
| + | <div class="slide"> | ||
| + | |||
| + | </div> | ||
| + | |||
| + | |||
| + | ===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 | ||
| + | <source lang=php> | ||
| + | $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>'; | ||
| + | ?> | ||
| + | </source> | ||
| + | *que genera la siguiente salida | ||
| + | <source lang=php> | ||
| + | $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 | ||
| + | </source> | ||
| + | ;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 | ||
| + | <source lang=php> | ||
| + | $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'; | ||
| + | </source> | ||
| + | *Genera la siguiente salida | ||
| + | <source lang=php> | ||
| + | $num es igual a true | ||
| + | $num no es exactamente igual a true | ||
| + | </source> | ||
| + | |||
| + | ;opreadores de concatenacón( .) concatena cadena de caracteres. | ||
| + | :El operador + no está sobre cargado, observa el siguiente código | ||
| + | <source lang=php> | ||
| + | $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>"; | ||
| + | </source> | ||
| + | *La salida sería | ||
| + | <source lang=php> | ||
| + | el valor de nombre completo es Maria de la Oh --- | ||
| + | el valor de nombre completo es 0 -- | ||
| + | </source> | ||
| + | |||
| + | |||
| + | ;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 | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | $b=1; | ||
| + | for ($a=0;$a<10;$a++){ | ||
| + | $b*=10; | ||
| + | echo 'valor de $b ='.$b.'<br>'; | ||
| + | } | ||
| + | ?> | ||
| + | </source> | ||
| + | *Genera la siguiente salida | ||
| + | <source lang=php> | ||
| + | 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 | ||
| + | </source> | ||
| + | ;operadores de ejecución (``) | ||
| + | :PHP proporciona un operador especial que permite ejecutar sentencias | ||
| + | *Observa el siguiente código | ||
| + | <source lang=php> | ||
| + | <?php | ||
| + | $Discos = `df`; | ||
| + | echo "<pre>$Discos</pre>"; | ||
| + | ?> | ||
| + | </source> | ||
| + | *Genera la siguiente salido | ||
| + | <source lang=php> | ||
| + | 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 | ||
| + | </source> | ||
| + | ;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 '''''||''''' | ||
| + | |} | ||
Última revisión de 21:26 14 oct 2014
|

