Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/Sintaxis/1»
De WikiEducator
| Línea 12: | Línea 12: | ||
__TOC__ | __TOC__ | ||
<div id=apuntes_distancia> | <div id=apuntes_distancia> | ||
| − | <div class= | + | ===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 | ||
| + | ;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> | <source lang=php> | ||
<?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> | </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> | <source lang=php> | ||
| − | + | include('ruta/nobrefichero'); | |
| + | require('ruta/nobrefichero'); | ||
| + | include_once('ruta/nombrefichero'); | ||
| + | require_once('ruta/nombrefichero'); | ||
</source> | </source> | ||
| − | |||
</div> | </div> | ||
| − | <div class= | + | <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> | <source lang=php> | ||
<?php | <?php | ||
| − | / | + | echo "<b><i>Hola desde un fichero include </b></i><hr />"; |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
?> | ?> | ||
</source> | </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> | ||
<div class="slide"> | <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| | {{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> | ||
<div class="slide"> | <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> | <source lang=php> | ||
| − | + | void var_dump($expresion) | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
</source> | </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> | <source lang=php> | ||
| − | + | bool isset ( $variable ) | |
</source> | </source> | ||
| − | *y | + | *verifica que una variable tiene valor (está definida y no tiene un valor null) |
| − | + | ||
<source lang=php> | <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> | </source> | ||
}} | }} | ||
</div> | </div> | ||
| − | <div class= | + | |
| + | <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> | ||
Revisión de 20:58 21 oct 2018
|
|
Contenido
</div>


