Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/Resumen»

De WikiEducator
Saltar a: navegación, buscar
(Expresiones)
Línea 278: Línea 278:
 
=====comparación=====
 
=====comparación=====
 
* <, > <=, >=, !=, ==, ===, !==
 
* <, > <=, >=, !=, ==, ===, !==
 +
*Hay qu tener cuidado con la igualdad de valor (==) y  la igualdad de valor y tipo (===)
 
<source lang=php>
 
<source lang=php>
 
+
$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 == false)
 +
  echo "Esto es cierto porque $a se adapta a 0 y el 0 se adapta a false";
 +
if ($a === false)
 +
  echo "Esto no es cierto ya que $a no es false ";
 
</source>
 
</source>
  
 +
*Ver la siguiente tabla para mas detalle
 +
http://php.net/manual/es/types.comparisons.php
  
 +
=====lógicas=====
 +
*and && or || xor
  
=====lógicas=====
 
  
 
===Funciones===
 
===Funciones===
 +
*Escribir con un nombre un conjunto de instrucciones
 +
*Una vez descrita la puedo invocar donde quira
 +
*Solo las variables internas definidas como '''''global''''' las puedo utilizar fuera de la función con el valor que ésta hubiera dejado
 +
*parámetros
 +
*return, devuelve un valor
 
===Cookies===
 
===Cookies===
 
===Sesiones===
 
===Sesiones===

Revisión de 05:58 12 mar 2015

Instalación

  • Apache
  • php
  • mysql
  • netbeans
  • java
  • debug

Sintaxis básica

Código embebido
<?php
.....
?>
  • 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>
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
?>

Array

  • Son estructuras o colecciones de alguna manera ordenadas de valores de cualquier tipo
  • Existen muchas funciones para trabajar con ellas
Definirlo
<?php
 $miArray = array();//Crea un array vacío
 $otroArray = array("Maria", "Luis", "Pedro", "Marta", "Carol");
 $otroArrayVacio = [];
 $array4 = [1,5,4,3,2];
?>
<7source>
;Añadir elementos después del último que hubiera
<source lang=php>
<?php
 $miArray[] =10 ;
 $otroArray[] = "Marga";
 $otroArrayVacio[] =8;
 $array4 []=15;
?>
Añadir elementos en una posición concreta
<?php
 $miArray[5] =10 ; //El próximo elemento se añadirá en la posicón 6 aunque solo haya 2 elementos
 $otroArray[2] = "Marga"; //Si ya existiera la posición 2 se sustituiría
 $otroArrayVacio[10] =8;
 $array4 [1]=15;
?>
Eliminar una posición del array
  • Se usa la conocida función unset(...)
  • Por ejemplo eliminar las posición previamente añadidas
Añadir elementos en una posición concreta
<?php
 unset($miArray[5]); //Elimina el elemento de la posicón 6 Si fuera el último el siguiente que añadamos sin indexar cubrirá esa posición, si no se dejará un hueco
 unset($otroArray[2]);
 unset($otroArrayVacio[10]);
 unset($array4 [1]);
?>
Funciones que más hemos usado con array
count($array) o size($array) 
  • Nos dice el número de elementos de un array, que no tiene porqué coincidir con el siguiente elemento a añadir.
Tipos de array
  • Es importante tener clara la diferencia entre array asociativo y array indexado
  • Ambos casos son colección de elementos por que son array
  • Se diferencian en la forma que voy a indicar cada posición de los diferentes elementos
indexado
  • La posición de cada elemento la especifico con un número
$misNotasIndexado =[6,7,8,7,6,7,8,7];
  • Es como igual que hacer
$misNotasIndexado =[0=>6,1=>7,2=>8,3=>7,4=>6,5=>7,6=>8,7=>7];
asociativo
  • La posición de cada elemento la especifico con una cadena de caracteres
  • En este caso a la hora de insertar un array, hay que especificar obligatoriamente en valor del índice
$misNotasAsociativo =["maria"=>6,"ana"=>7,"nieves"=>8,"luis"=>7,"ester"=>6,"carlos"=>7,"pedro"=>8,"nieves"=>7];


Recorrer un array foreach(....)
  • Hay diferentes maneras de recorre un array, pero esta estructura es la más cómoda
  • La forma de interpretarla narrativamente sería
para el array $misNotasIndexado coge cada elemento y almacénalo en $nota 
foreach ($misNotasIndexado as $nota){
        echo "Valor de la nota : $nota";
}
*También podría acceder a los índices
 '''para el array $misNotasIndexado coge cada  indice y guardalo en $indice y cada elemento de esa posición  y almacénalo en $nota 
<source lang = php>
foreach ($misNotasIndexado as $indice => $nota){
        echo "Valor de la nota $indice : $nota";
}
*En el caso de arrays asociativo  nos interesará la mayoría de las veces acceder al valor del índice y del elemento
 '''para el array $misNotasAsociativo coge cada  indice y guardalo en la variable  $persona y cada elemento de esa posición  y almacénalo en $nota 
<source lang = php>
foreach ($misNotasAsociativo as $persona => $nota){
        echo "Valor de la nota $persona : $nota";
}
  • Es importante marcar que las variables $indice, $persona o $nota, son variables que creamos nosotros y pueden lógicamente tener cualquier nombre

Estructuras de control

  • Ya sabemos que hay 3 tipos de estructuras de control
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
  }
  • 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 segurao
do{
  //instrucciones
}while (expresion_booleana);
  • 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
//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
{
}

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

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 == false)
   echo "Esto es cierto porque $a se adapta a 0 y el 0 se adapta a false";
if ($a === false)
   echo "Esto no es cierto ya que $a no es false ";
  • Ver la siguiente tabla para mas detalle
http://php.net/manual/es/types.comparisons.php
lógicas
  • and && or || xor


Funciones

  • Escribir con un nombre un conjunto de instrucciones
  • Una vez descrita la puedo invocar donde quira
  • Solo las variables internas definidas como global las puedo utilizar fuera de la función con el valor que ésta hubiera dejado
  • parámetros
  • return, devuelve un valor

Cookies

Sesiones

Autentificación

Objetos

atributos

métodos

concepto de sobrecarga

Encapsulacion: delimitadores de acceso

constructor

métodos mágicos

elementos estáticos

métodos mágicos