Usuario:ManuelRomero/NewPHP/inaem 2018/resumen
De WikiEducator
< Usuario:ManuelRomero | NewPHP
Revisión a fecha de 02:53 22 feb 2018; ManuelRomero (Discusión | contribuciones)
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
- Secuenciales
- Selectivas
- 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