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 10:26 15 oct 2014
|