|
|
Línea 97: |
Línea 97: |
| </div> | | </div> |
| <div class='slide'> | | <div class='slide'> |
− | ===Dónde poner el código embebido===
| |
− | <br/>
| |
− | {{MRM_Pregunta|Dónde escribir código php}}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | <hr />
| |
− | *Donde queramos que se ejecute algo
| |
− | <hr/>
| |
− | [[Imagen:codigoPHP.png|center|700px]]
| |
− | *Se ejecuta como si fuera un solo programa
| |
− | *A la hora de incluir php podemos se usa mucho la filosofía Modelo Vista /Controlador que veremos en otro tema
| |
− | {{MRM_Resumen|Title=Modelo vista controlador|
| |
− | *Trata de separar el código según su cometido, de forma muy resumida
| |
− | *Hay acciones que realizan cálculos y obtienen resultados (Controlador
| |
− | *Hay acciones que lo que hacen es visualziar valores (Vista)
| |
− | *Hay acciones que se encargan de interactuar con la base de datos (Modelo)
| |
− | }}
| |
− | {{MRM_Puntos clave|Title=Empecemos aplicar el modelo vista controlador|
| |
− | *Podemos llevar este criterio desde el principio siguiente el esquema siguiente
| |
− | {{Plegable|hide|esqueleto MVC|
| |
− | <source lang=html5>
| |
− | <!-- Empecemos nuestro fichero escribiendo instrucciones php
| |
− | Estas instrucciones realizarán cálculos y obtendrán valores
| |
− | En ningúm momento generan salidas,
| |
− | Trataremos de almacenar los valores en variables
| |
− | -->
| |
− | <?php
| |
− | //instrucciones php
| |
− | $variables = "Mensaje escrito desde php";
| |
− | ?>
| |
− | <!--Ahora el código html-->
| |
− | <!DOCTYPE html>
| |
− | <html>
| |
− | <head>
| |
− | <meta charset="UTF-8">
| |
− | <title>probando php</title>
| |
− | </head>
| |
− | <body>
| |
− | <!--Dentro del html cuando necesitemos ver valores
| |
− | los escribiemo
| |
− | También puede ser que necesitemos instrucciones
| |
− | las escribimos, pero intentando escribir lo necesario.
| |
− | Esto es vista
| |
− | -->
| |
− | <h1> <?php echo $variable ?></h1>
| |
− | </body>
| |
− | </html>
| |
− | ?>
| |
− | </source>
| |
− |
| |
− | }}
| |
− | }}
| |
− | </div>
| |
− | <div class="slide">
| |
− |
| |
− |
| |
− | {{MRM_Ejemplo|Title=Programa para ver si un número es o no par|
| |
− | No te preocupes si no entiendes el código, lo iremos viendo
| |
− | <source lang=php>
| |
− | <?php
| |
− |
| |
− | //-----------CONTROLADOR-----------------------------
| |
− | //Instrucciones que realizan cálculos
| |
− | //Guardo el resultado que quiero mostrar en variables
| |
− | $a = rand(1, 100); //Genero un número aleatorio
| |
− | $fecha = date("d m Y", time()); //Obtenemos la fecha
| |
− | $title = "Hoy, $fecha, veremos si '$a' es par o impar "; //Creo un título
| |
− | if ($a % 2 == 0) //Si el número es par
| |
− | $msj = "El número $a es par";
| |
− | else
| |
− | $msj = "El número $a es impar";
| |
− | ?>
| |
− |
| |
− | <!-- Ahora metemos el código php cuando lo necesitemos-->
| |
− | <!------------------- VISTA (solo la parte php)----------------------->
| |
− | <!DOCTYPE html>
| |
− | <html>
| |
− | <head>
| |
− | <meta charset="UTF-8">
| |
− | <title>probando php</title>
| |
− | </head>
| |
− | <body>
| |
− | <h1> <?php echo $title ?></h1>
| |
− | <hr />
| |
− | <h3> <?php echo $msj ?></h3>
| |
− |
| |
− | </body>
| |
− | </html>
| |
− | </source>
| |
− |
| |
− |
| |
− | }}
| |
− |
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− |
| |
− | ===Escribir PHP con directivas de inclusión===
| |
− | *Podemos escribir el código php escribiéndolo en un fichero aparte y luego lo incluimos.
| |
− | **Incluimos el fichero explícitamente
| |
− | **Para ello usamos directivas o instrucciones del tipo '''''include'''''
| |
− | <source lang=php>
| |
− | include('ruta/nobrefichero');
| |
− | require('ruta/nobrefichero');
| |
− | include_once('ruta/nombrefichero');
| |
− | require_once('ruta/nombrefichero');
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Ambas son palabras reservadas del lenguaje y sirven para incluir el contenido de un fichero con sentencias php en esa posición del código.
| |
− | {{MRM_Puntos clave|Title=Include Vs Require|
| |
− | *Ambas incluyen el contenido de un fichero php en esa posición
| |
− | **Con include si no se encuentra se continúa ejecutando en esa posición
| |
− | **Con require si no está el fichero se detiene en ese punto la ejecución del script}}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | {{MRM_Puntos clave|Title=include/require Vs include_once/require_once |
| |
− | *Ambas incluyen el contenido de un fichero php en esa posición
| |
− | **include/require siempre buscan e incluyen el fichero en esa posición
| |
− | **include_once/require_once antes de incluirlo mira a ver si ya lo incluyó previamente en cuyo caso ya no lo hace}}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | {{MRM_Actividad|Title=Probando include require
| |
− | |Crea 4 ficheros con el siguiente código
| |
− | '''''fichero_include.php'''''
| |
− | <source lang=php>
| |
− | <?php
| |
− | echo "<b><i>Hola desde un fichero include </b></i><hr />";
| |
− | ?>
| |
− | </source>
| |
− | '''''fichero_include_once.php'''''
| |
− | <source lang=php>
| |
− | <?php
| |
− | echo "<b><i>Hola desde un fichero include once </b></i><hr />";
| |
− | ?>
| |
− | </source>
| |
− | '''''fichero_require.php'''''
| |
− | <source lang=php>
| |
− | <?php
| |
− | echo "<b><i>Hola desde un fichero require </b></i><hr />";
| |
− | ?>
| |
− | </source>
| |
− | '''''fichero_require_once.php'''''
| |
− | <source lang=php>
| |
− | <?php
| |
− | echo "<b><i>Hola desde un fichero require once </b></i><hr />";
| |
− | ?>
| |
− | </source>
| |
− | '''''Ahora crea un programa principal dónde uses las instrucciones de inclusión vistas en este apartado'''''.
| |
− | <source lang=php>
| |
− | <?php
| |
− |
| |
− | echo "<h2>Ahora vamos a incluir un fichero con include</h2>";
| |
− | include 'ficheros/fichero_include.php';
| |
− |
| |
− | echo "<h2>ahora vamos a incluir un fichero con require</h2>";
| |
− | require 'ficheros/fichero_require.php';
| |
− |
| |
− | echo "<h2>Ahora vamos a incluir un fichero con include_once</h2>";
| |
− | include_once 'ficheros/fichero_include_once.php';
| |
− |
| |
− | echo "<h2>Ahora vamos a incluir un fichero con require_once</h2>";
| |
− | require_once 'ficheros/fichero_require_once.php';
| |
− |
| |
− | echo "<h2>Ahora vamos a incluir un fichero que no existe con include</h2>";
| |
− | include 'ficheros/fichero_no_existe_include.php';
| |
− | echo "Vemos que no pasa nada, por que el fichero no existe pero sigue <hr />";
| |
− |
| |
− | echo "<h2>Ahora volvemos a incluir un fichero con include_once</h2>";
| |
− | include_once 'ficheros/fichero_include_once.php';
| |
− | echo "Vemos que no pasa nada, por que el fichero ya se había incluido y no se vuelve a incluir<hr />";
| |
− |
| |
− | echo "<h2>Ahora volvemos a incluir un fichero con require_once</h2>";
| |
− | require_once 'ficheros/fichero_require_once.php';
| |
− | echo "Vemos que no pasa nada, por que el fichero ya se había incluido y no se vuelve a incluir<hr />";
| |
− |
| |
− | echo "<h2>Ahora vamos a incluir un fichero con include para ver que sí que se vuelve a incluir</h2>";
| |
− | include 'ficheros/fichero_include.php';
| |
− |
| |
− | echo "<h2>Ahora vamos a incluir un fichero con require y vemos que sí se vuelve a incluir</h2>";
| |
− | require 'ficheros/fichero_require.php';
| |
− |
| |
− | echo "<h2>Ahora no incluimos con require un fichero que no existe</h2>";
| |
− | require 'ficheros/fichero_no_existe_require.php';
| |
− | echo "Esta línea ya no se imprimirá ni nada que vaya después de aquí";
| |
− | ?>
| |
− | </source>
| |
− | }}
| |
− | </div>
| |
− | <div class="slide">
| |
− | {{MRM_Actividad|Title=Práctica|
| |
− | *Siéntete cómoda en modificar el fichero y ver el resultado
| |
− | *Observa que estas instrucciones no son exactamente funciones, por lo que no necesitan paréntesis (aunque se puede poner por mantener una homogeneidad con sintaxis del uso o invocación de funciones)
| |
− | <source lang=php>
| |
− | include 'ficheros/fichero_include.php'
| |
− | //Es léxicamente y sintácticamente igual que
| |
− | include ('ficheros/fichero_include.php');
| |
− |
| |
− | </source>
| |
− | }}
| |
− |
| |
− | </div>
| |
− |
| |
− |
| |
− |
| |
− | <div class="slide">
| |
− | {{MRM_Recursos de la Web|
| |
− | *[http://php.net/manual/es/ php] página oficial en español LO MEJOR!!!!
| |
− | *http://php.net/manual/es/
| |
− | *<!-- MRM incluir en el otro documento http://php.net/manual/es/ini.core.php -->
| |
− |
| |
− | }}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | <!--4---------------------------------->
| |
− | ;Sensitive case?
| |
− | *El lenguaje es sensible a mayúsculas y minúsculas en los siguientes casos:
| |
− | **En los identificadores de variables
| |
− | <source lang=php>
| |
− | $edad =10;
| |
− | $Edad =20;
| |
− | $edad y $Edad son 2 variables diferentes
| |
− | </source>
| |
− | **En los nombres de funciones
| |
− | <source lang=php>
| |
− | function $calculaEdad($anyo){
| |
− | ...
| |
− | }
| |
− | function $CalculaEdad($anyo){
| |
− | ...
| |
− | }
| |
− | //Son dos funciones diferentes
| |
− | </source>
| |
− | *El lenguaje '''''NO''''' es sensible a mayúsculas y minúsculas en:
| |
− | **las palabras reservadas (if o If o IF o iF,...)
| |
− | <source lang=php>
| |
− | If () {
| |
− | //..
| |
− | }
| |
− | IF () {
| |
− | //..
| |
− | }
| |
− | if () {
| |
− | //..
| |
− | }
| |
− | iF () {
| |
− | //..
| |
− | }
| |
− | //Todas las construcciones if son correctas
| |
− | </source>
| |
− | </div>
| |
− |
| |
− |
| |
− | <div class=slide>
| |
− |
| |
− | ==Funciones propias de php sobre tipos y valores==
| |
− | http://php.net/manual/es/ref.var.php
| |
− | *Existen una serie (muchas) de funciones que son interesantes de conocer
| |
− | *Estas funciones ya están creadas y se pueden usar directamente
| |
− | *Están relacionadas con los tipos de datos y valores
| |
− | *Alguna de ellas son extremadamente útiles y utilizadas, por ejemplo antes de procesar un dato, hay que ver que dicho dato tenga valor.
| |
− | *A continuación trataremos alguna de ellas
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;[http://es1.php.net/manual/es/function.var-dump.php var_dump]
| |
− | <source lang=php>
| |
− | void var_dump($expresion)
| |
− | </source>
| |
− | *Nos da información sobre la estructura de un valor resultado de una expresion
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;[http://es1.php.net/manual/es/function.isset.php isset]
| |
− | <source lang=php>
| |
− | bool isset ( $variable )
| |
− | </source>
| |
− | *verifica que una variable tiene valor (está definida y no tiene un valor null)
| |
− | <source lang=php>
| |
− | <?php
| |
− | $VariableValor= 5;
| |
− | print ("El valor de la variable es $VariableValor");
| |
− | print ("El valor de otra variable es $OtraVariableValor");
| |
− | if (isset($VariableValor))
| |
− | print ("VariableValor tiene valor asignado");
| |
− | else
| |
− | print ("VariableValor no no tiene valor asignado");
| |
− | if (isset($OtraVariableValor))
| |
− | print ("OtraVariableValor tiene valor asignado");
| |
− | else
| |
− | print ("OtraVariableValor no no tiene valor asignado");
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− | <div class="slide">
| |
− |
| |
− | ===Funciones para determinar existencia de variables===
| |
− | Tenemos tres funciones muy parecidas pero no del todo iguales
| |
− | <!--
| |
− | {|class="wikitable" width="60%"
| |
− | !Función
| |
− | !Significado
| |
− | |-
| |
− | |'''is_null($variable)'''
| |
− | |Determina si una variable ($variable) tiene valor null
| |
− | |-
| |
− | |'''empty($variable)'''
| |
− | |Determina si una variable ($variables)está vacía
| |
− | |-
| |
− | |'''isset($variable)'''
| |
− | |Determina is una variable ha sido definida y no tiene un valor vacío.
| |
− | |}
| |
− | -->
| |
− | *Es importante saber qué es para php un valor nulo, o si está vacía que no son conceptos sinónimos
| |
− | ;Valor null:
| |
− | <source lang=php>
| |
− | $a=null //$a tiene valor null.
| |
− | is_null($a) //true
| |
− | unset($a) //Se destruye la variable y toma el valor null
| |
− | is_null($a) //true
| |
− | //$b una variable que no existe tiene el valor null
| |
− | is_null($b) //true
| |
− | </source>
| |
− | ;Variable vacía
| |
− | <source lang=php>
| |
− | $a=null //$a está vacía
| |
− | empty($a) //true
| |
− | $a="";
| |
− | empty($a) //true
| |
− | $a="hola";
| |
− | empty($a) //false
| |
− | unset($a);
| |
− | empty($a) //true
| |
− | $a=false;
| |
− | empty($a) //true !OJO!
| |
− | $a=0;
| |
− | empty($a) //true !OJO!
| |
− |
| |
− | </source>
| |
− | *Puedes ver la siguiente app en la que puedes aportar valores
| |
− | http://manuel.infenlaces.com/apuntes/existencia_valor_variables
| |
− | *Tener en cuenta que si evaluamos si una variable está vacía no es
| |
− | </div>
| |
− | <div class="slide">
| |
− | ;[http://es1.php.net/manual/es/function.empty.php empty]
| |
− | <source lang=php>
| |
− | bool empty ($varriable)
| |
− | </source>
| |
− | *Determina si una variable no existe. Devuelve true si no existe o su valor está vacío
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | {{MRM_Actividad|
| |
− | Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo}}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | {{MRM_Actividad|
| |
− | Usando la función xxxyyy donde xxx e yyy será dec oct bin o hex para convertir el valor de un sistema numérico a otro}}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | {{MRM_Actividad|
| |
− | *Define las siguientes variables que se especifican en el código siguiente y verifica el resultado con empty()
| |
− |
| |
− | <source lang=php>
| |
− | $num=0;
| |
− | $nombre="";
| |
− | $nombre=null;
| |
− | $nombre="0";
| |
− | $pregunta = FALSE;
| |
− | </source>
| |
− | }}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;[http://es1.php.net/manual/es/function.gettype.php gettype]]
| |
− | *Devuelve el tipo de una variable
| |
− | <source lang=php>
| |
− | string gettype($variable)
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;[http://es1.php.net/manual/es/function.is-bool.phpis_bool][http://es1.php.net/manual/es/function.is-double.php is-double] [http://es1.php.net/manual/es/function.is-int.php is-int], is-xxx
| |
− | *son funciones donde xxx especificado en el último nombre, puede ser cualquiera de los tipos
| |
− | [[Archivo:funciones_is-xxx.png]]
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | *Todas ellas devuelve un booleano que indica si la variable, valor o expresion es o no de ese tipo,
| |
− | <source lang=php>
| |
− | string is_int($variable);
| |
− | string is_double($variable);
| |
− | string is_bool($variable);
| |
− | string is_integer($variable);
| |
− | string is_null($variable);
| |
− | string is_string($variable);
| |
− | ...
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | {{MRM_Actividad|
| |
− | Visualizar de qué tipo es la expresión mostrada en el código siguiente y visualiza el valor de la expresión}}
| |
− | <source lang=php>
| |
− | $a=5;
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;[http://php.net/manual/es/function.unset.php unset]
| |
− | *Destruye la variable especificada perdiéndose su valor
| |
− | void unset ($var)
| |
− | </div>
| |
− |
| |
| | | |
| </div> | | </div> |