Diferencia entre revisiones de «Usuario:ManuelRomero/php/Objetos»

De WikiEducator
Saltar a: navegación, buscar
 
(4 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]]
 +
|}
  
  
Línea 77: Línea 86:
 
  Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
 
  Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
 
</div>
 
</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>
 +
 +
 +
  
  
Línea 142: Línea 173:
 
}
 
}
 
?>
 
?>
 +
</source>
 
;expresion_actualizar
 
;expresion_actualizar
 
:Esta expresión actualiza el valor de alguna/as variables
 
:Esta expresión actualiza el valor de alguna/as variables
Línea 153: Línea 185:
 
}
 
}
 
?>
 
?>
 
+
</source>
 
<div class="slide">
 
<div class="slide">
===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
 
 
/*
 
* To change this license header, choose License Headers in Project Properties.
 
* To change this template file, choose Tools | Templates
 
* and open the template in the editor.
 
*/
 
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>
 
</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>';
  
#Operadores lógicos
+
if (++$a==6)
</div>
+
    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";
  
<div class="slide">
+
$nombreCompleto = $nombre.$apellido;
===Operadores lógicos===
+
echo "el valor de nombre completo es $nombreCompleto ---<br>";
and
+
or
+
<nowiki>!</nowiki>
+
xor
+
&&
+
<nowiki>||</nowiki>
+
*Funcionan por cortocircuito
+
*Construyen expresiones booleanas y tras su evaluación retorna un valor booleano.
+
</div>
+
  
 +
$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>
  
  
<div class="slide">
+
;operadores de asignacion (= , =>)
===Operadores lógicos===
+
:Se pueden combinar con los aritméticos (+=, *=, ...)  y con los de concatenación (.=)
</div>
+
:En este caso el valor de la variable de la izquierda se toma como primero operando
 
+
<source lang=php>
<div class="slide">
+
<?php
===Operadores lógicos===
+
$b=1;
==
+
for ($a=0;$a<10;$a++){
¡=
+
    $b*=10;
<
+
    echo 'valor de $b ='.$b.'<br>';
>
+
}
<=
+
?>
>=
+
</source>
  ===
+
*Genera la siguiente salida
</div>
+
<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



DWES TituloTema3.gif


Estructuras de control 1

A continuación veremos las estructuras de control Son de tres tipos

  1. Selección
  2. Iteración
  3. 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
  1. inicializar la variable de control
  2. acutalizarla correctamente dentro del bucle
  3. 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 ||