Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/inaem 2018/resumen»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con «__NOTOC__ {{:Usuario:ManuelRomero/dwes/inaem_2018/nav}} ===Instalación=== *Apache *php (cli y lib) *mysql (cliente y servidor) *netbeans **(java) *debug ===Sintaxis bás...»)
 
(Estructuras de control)
Línea 72: Línea 72:
 
===Estructuras de control===
 
===Estructuras de control===
 
*Ya sabemos que hay 3 tipos de estructuras de control
 
*Ya sabemos que hay 3 tipos de estructuras de control
 +
#Secuenciales
 +
#Selectivas
 +
#repetitivas o iterativas
 +
 +
;Secuenciales
 +
*Son instrucciones que van una detrás de otra
 +
*Usamos el ; para separar una de otra
 +
<source lang=php>
 +
//instruccion de asignacion
 +
$variable = valor  o expresion ;
 +
//instruccion de invocacion funcion  del sistema o creada por nosotros
 +
mail ($destino, $submit, $mensaje, $from) ;
 +
//instruccion de escribir
 +
echo "hola valientes y entusiastas de la programacion";
 +
//instruccion de lectura
 +
$variable = $_POST['variable'];
 +
//instruccion de inicio fin de bloque en este caso sin punto y coma
 +
{
 +
}
 +
</source>
 
;selectivas
 
;selectivas
 
<source lang=php>
 
<source lang=php>
Línea 84: Línea 104:
 
   }
 
   }
 
</source>
 
</source>
 +
<source lang=php>
 +
if (expresion_booleana)
 +
    instruccion_if
 +
else
 +
    instruccion_else
 +
</source>
 +
<source lang=php>
 +
if (expresion_booleana)
 +
{
 +
    instruccion_if
 +
}
 +
else
 +
{
 +
  instruccion_else
 +
}
 +
</source>
 +
<source lang=php>
 +
if (expresion_booleana):
 +
    instruccio_1
 +
    instruccio_2
 +
    instruccio_3
 +
else:
 +
 +
    instruccio_1
 +
    instruccio_2
 +
    instruccio_3
 +
endif;
 +
</source>
 +
<source lang=php>
 +
if (expresion_booleana){
 +
    instruccio_1
 +
    instruccio_2
 +
    instruccio_3
 +
}else{
 +
 +
    instruccio_1
 +
    instruccio_2
 +
    instruccio_3
 +
  }
 +
</source>
 +
 
*Tenemos también el llamado selector múltiple
 
*Tenemos también el llamado selector múltiple
  
 
<source lang=php>
 
<source lang=php>
  switch $variable{
+
  switch ($variable){
 
         case valor1 :  
 
         case valor1 :  
                    //instrucciones
+
                instrucciones
                    break;
+
                break;
 
         case valor2 :  
 
         case valor2 :  
                    //instrucciones
+
                instrucciones
                    break;
+
                break;
 
       // .......
 
       // .......
 
       default:  
 
       default:  
                    //instrucciones_default
+
                instrucciones_default
                    break;
+
                break;
+
 
}
 
}
 
</source>
 
</source>
Línea 122: Línea 182:
 
</source>
 
</source>
  
*El bucle que ejecuta una iteración segurao
+
*El bucle que ejecuta una iteración segura
 
<source lang=php>
 
<source lang=php>
 
do{
 
do{
Línea 129: Línea 189:
 
</source>
 
</source>
 
*Observar que en este caso al final va un ; pues separamos de la siguiente instrucción
 
*Observar que en este caso al final va un ; pues separamos de la siguiente instrucción
;Secuenciales
 
*Son instrucciones que van una detrás de otra
 
*Usamos el ; para separar una de otra
 
<source lang=php>
 
//instruccion de asignacion
 
$variable = valor  o expresion ;
 
//instruccion de invocacion funcion  del sistema o creada por nosotros
 
mail ($destino, $submit, $mensaje, $from) ;
 
//instruccion de escribir
 
echo "hola valientes y entusiastas de la programacion";
 
//instruccion de lectura
 
$variable = $_POST['variable'];
 
//instruccion de inicio fin de bloque en este caso sin punto y coma
 
{
 
}
 
</source>
 
  
 
===Escribir mensajes===
 
===Escribir mensajes===

Revisión de 02:53 22 feb 2018



Instalación

  • Apache
  • php (cli y lib)
  • mysql (cliente y servidor)
  • netbeans
    • (java)
  • debug

Sintaxis básica

Código embebido
<?php
.....
?>
PHP es un lenguaje que se ejecuta en el servidor
  • El cliente nunca verá ninguna instrucción en la página que el servidor le entrega
Dónde poner le código
  • En un mismo fichero puedo abrir y cerrar etiquetas
  • El comportamiento es como si todo es un fichero, que es lo que es
<?php
$titulo= "El título  de la página "
$trozosCodigo =0;
?>
<source lang=php>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Probando cosas con título <?php echo $titulo; $trozosCodigo++;?></title>
    </head>
    <body>
        <?php
              echo "Otro trozo de código php ";
              $trozosCodigo+;
         ?>
 
    </body>
        <?php
              $trozosCodigo+;
              echo "En total hay $trozosCodigo de código;";
 
         ?>
</html>
  • Intentamos poner la mayor parte de código posible en la parte superior antes del DocType
Variables
  • Identificadores que empiezan por $
<?php
$variable = "valor";
?>
  • Lenguaje fuertemente tipado de declaración dinámica
  • 5 tipos básicos
  • Los tipos pueden cambiar en cualquier momento
<?php
$a= 5;       // $a de tipo  entero
$a="maria"; // $a de tipo  string
$a=true; // $a de tipo  booleano
$a=5.5; // $a de tipo  float
$a=null; // $a de tipo  null
?>

Estructuras de control

  • Ya sabemos que hay 3 tipos de estructuras de control
  1. Secuenciales
  2. Selectivas
  3. repetitivas o iterativas
Secuenciales
  • Son instrucciones que van una detrás de otra
  • Usamos el ; para separar una de otra
//instruccion de asignacion
$variable = valor  o expresion ;
//instruccion de invocacion funcion  del sistema o creada por nosotros
mail ($destino, $submit, $mensaje, $from) ;
//instruccion de escribir
echo "hola valientes y entusiastas de la programacion";
//instruccion de lectura
$variable = $_POST['variable'];
//instruccion de inicio fin de bloque en este caso sin punto y coma
{
}
selectivas
 if (expresión_booleana) {
    instrucciones a ejecutar en el caso 
    de que expresión_booleana retorne true
    Si solo hubiera una instrucción podemos omitir las llaves
 }else{
    instrucciones a ejecutar en el caso 
    de que expresión_booleana retorne false
    Esta parte no es obligatoria
  }
 if (expresion_booleana)
    instruccion_if
 else
    instruccion_else
 if (expresion_booleana)
 {
    instruccion_if
 }
 else
 {
  instruccion_else
 }
 if (expresion_booleana):
    instruccio_1
    instruccio_2
    instruccio_3
 else:
 
    instruccio_1
    instruccio_2
    instruccio_3
 endif;
 if (expresion_booleana){
    instruccio_1
    instruccio_2
    instruccio_3
 }else{
 
    instruccio_1
    instruccio_2
    instruccio_3
  }
  • Tenemos también el llamado selector múltiple
 switch ($variable){
        case valor1 : 
                instrucciones
                break;
        case valor2 : 
                instrucciones
                break;
       // .......
       default: 
                instrucciones_default
                break;
}
  • Recordad que si no ponemos el braek, se ejecutarán todos los case hasta encontrar un break o fin del switch
  • La sección default es opcional y se entrará en ella si no hay coincidencia previa
  • Lo que se hace en cada case es mirar a ver si el valor de la variable coincide
bucle
  • Como ya sabemos tenemos tres tipos
  • El bucle clásico
  • Recordemos las tres reglas de hora (inicializar, comparar correctamente, actualizar).
while (expresion_booleana){
  //instrucciones
}
  • El bucle contador
  • Ponemos un ejemplo que se va incrementando la variable de 11
  • Podemos mocificar cada una de las tres partes del for
for ($var = valor_inicial; $var < valor_final; $var++){
  //instrucciones
}
  • El bucle que ejecuta una iteración segura
do{
  //instrucciones
}while (expresion_booleana);
  • Observar que en este caso al final va un ; pues separamos de la siguiente instrucción

Escribir mensajes

echo"texto ", "mas texto, " tercer parámetro mas texto";
print "solo puedo leer con un parámetro";
printf ("Este me permite escribir con formato usando \%);

Expresiones

  • PHP es un lenguaje orientado a expresiones
  • Esto quiere decir que en php todo se consideran expresiones
  • una expresión es un conjunto de valores (operadorandos) y operadores
  • Los operadores actúan sobre los operandos y obtengo un valor como resultado de evaluar y realizar los cálculos de la expresión

Expresiones de asignación

  • Dan como resultado el valor que asigno
$a = 5;
echo "Quiero ver el valor de esta expresion ".$a=5;
//Veré que me imprime 5

Expresiones aritméticas

  • Dan como resultado el cálculo obtenido
$b = ($a+5*$c-8 /5)%3// .... (+-*/%)

Expresiones booleanas

  • Esta expresión da como resultado un valor true o false
  • Puenden ser de dos tipos
comparación
  • <, > <=, >=, !=, ==, ===, !==
  • Hay qu tener cuidado con la igualdad de valor (==) y la igualdad de valor y tipo (===)
$a = 10;
if ($a == true)
   echo "Esto es cierto porque $a se adapta a true";
if ($a === true)
   echo "Esto es false porque $a se adapta a true";
$a = "pedro"
if ($a == true)
   echo "Esto es cierto porque $a no es nulo y al transformar en booleano se toma como true";
if ($a === true)
   echo "Esto no es cierto ya que $a no es true ya que es de tipo string y no booleano ";
  • Ver la siguiente tabla para mas detalle
http://php.net/manual/es/types.comparisons.php
lógicas
  • and && or || xor



Leer valores

  • Para leer valores necesitamos un formulario (no es la única forma pero si la más usada)
  • Otras maneras leer de ficheros por ejemplo
  • La idea es que al hacer una solicitud web vienen también todos los contenidos de los diferentes input de un formulario
form
<form action="ficheroPhpAEjecutar.php" method="POST"
     <input type = "text|radio| ..."   name="id_para_leer_en_php"  value ="valor_por_defecto"
     <input type=submit     value="enviar">
<form>
  • Recordad los atributos importantes
  • El name de los input es la forma de leer en servidor
  • Cuando hacemos click en el submit es cuando invocamos al fichero especificado
leer
$variable =$_POST["id_para_leer_en_php"] ;
$variable =$_GET["id_para_leer_en_php"] ;
$variable =$_REQUEST["id_para_leer_en_php"] ;
$variable = intput_filter (INPUT_POST, "id_para_leer_en_php", FILTER.....) ;
$variable = intput_filter (INPUT_GET, "id_para_leer_en_php", FILTER.....) ;
  • Si pasamos un filtro, no podemos leer arrays.
  • Siempre leeremos como una cadena de caracteres