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= | + | <div class='slide'> |
− | + | ===Comentarios === | |
− | * | + | *Son ignorados por el intérprete, no generan instrucciones, pero se consideran parte del software |
− | * | + | *En php tengo 4 formas de hacer comentarios |
− | * | + | <source lang=php> |
− | * | + | <?php |
− | * | + | /* |
+ | Este código no hace nada pero muestra | ||
+ | la sintaxis de los comentarios | ||
+ | como este que ocupa varias líneas tipo lenguaje C o Java | ||
+ | */ | ||
+ | $miVariable= 8;// Esta parte de la línea se ignorará | ||
+ | $miVariable+= 8;# y esta parte de línea tambien | ||
+ | echo "Valor de la variable $miVariable"; | ||
+ | //Este es otro comentario de una sola línea | ||
+ | #Este es otro modo de hacer comentarios tipo script de linux | ||
+ | /** | ||
+ | Este comentario permite insertar información | ||
+ | Para que luego phpDocumentor genere una página web | ||
+ | Con la información de mi código | ||
+ | */ | ||
+ | ?> | ||
+ | </source> | ||
+ | *Así como comentar las funciones como veremos | ||
+ | *Este código nos visualizará lo siguiente | ||
+ | <source lang=php> | ||
+ | Valor de la variable 16 | ||
+ | </source> | ||
+ | El resto del código será ignorado | ||
</div> | </div> | ||
− | <div class= | + | <div class='slide'> |
− | + | *Es bueno escribir al principio del script | |
<source lang=php> | <source lang=php> | ||
− | + | <?php | |
− | + | /** | |
− | + | * User: Nombre y apellidos | |
− | + | * Date: 19/10/17 | |
− | + | * Version: 17:40 | |
− | + | */ | |
− | + | ?> | |
− | + | ||
− | + | ||
</source> | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Aquí tienes la referencia para ver las diferentes directivas para generar código | ||
+ | *Más adelante en el curso las veremos. | ||
+ | {{MRM_Recursos de la Web| | ||
+ | *Directivas para comentarios https://phpdoc.org/docs/latest/index.html | ||
}} | }} | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | {{ | + | {{MRM_Actividad|Title=probando comentarios | |
+ | *Escribe la siguiente función anterior en un fichero php | ||
+ | |||
<source lang=php> | <source lang=php> | ||
− | + | function miFuncion($num1, $num2){ | |
− | + | if ($num1>$num2) | |
− | + | return $num1; | |
− | < | + | else |
− | + | return $num2; | |
− | + | </source> | |
− | + | Ahora justo en la línea de encima de función escribe | |
− | + | <source lang=php> | |
− | + | /** | |
+ | </source> | ||
+ | *y luego presiona intro | ||
+ | *Te debería de quedar | ||
+ | <source lang=php> | ||
+ | /** | ||
+ | * | ||
+ | * @param type $num1 | ||
+ | * @param type $num2 | ||
+ | * @return type | ||
+ | */ | ||
+ | function miFuncion($num1, $num2){ | ||
+ | if ($num1>$num2) | ||
+ | return $num1; | ||
+ | else | ||
+ | return $num2; | ||
+ | |||
</source> | </source> | ||
}} | }} | ||
</div> | </div> | ||
− | <div class= | + | <div class='slide'> |
+ | ===Dónde poner el código embebido=== | ||
+ | <br/> | ||
+ | {{MRM_Pregunta|Dónde escribir código php|{{feedback|Dónde queramos que se ejecute algo}} }} | ||
+ | </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 | |
− | {{Plegable|hide| | + | *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> | <source lang=html5> | ||
− | </body> | + | <!-- 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> | </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 | <?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> | + | </body> |
</html> | </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> | ||
+ | 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> | ||
+ | <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> |
Revisión de 09:38 22 oct 2018
|
Contenido