Diferencia entre revisiones de «Usuario:ManuelRomero/php/introduccion»
De WikiEducator
< Usuario:ManuelRomero | php
(No se muestran 54 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
− | __NOEDITSECTION__ | + | <!--{{:Usuario:ManuelRomero/php/nav}}--> |
+ | |||
+ | <!--__NOEDITSECTION__--> | ||
{|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" | {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" | ||
| width="100%" valign="top" style="padding: 0; margin:0px;" | | | width="100%" valign="top" style="padding: 0; margin:0px;" | | ||
Línea 8: | Línea 10: | ||
[[Imagen:DWES_TituloTema3.gif|center]] | [[Imagen:DWES_TituloTema3.gif|center]] | ||
|} | |} | ||
+ | __NOTOC___ | ||
+ | {{#widget:Slides}} | ||
+ | <div class="slides layout-regular template-default"> | ||
<div class="slide"> | <div class="slide"> | ||
− | = | + | ===Introducción=== |
+ | #PHP (acrónimo de PHP: Hypertext Preprocessor) | ||
+ | ##es un lenguaje de código abierto | ||
+ | ## muy popular (Podríamos pensar en un estándar?) | ||
+ | ## especialmente adecuado para desarrollo web | ||
+ | ## en desarrollos web | ||
+ | ###Se ejecuta en el servidor web | ||
+ | ###Es incrustrado en HTML. | ||
+ | ### El cliente solo ve el resultado de la ejecución nunca el código | ||
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
− | < | + | ===Como escribir PHP 1=== |
− | + | *Dentro de páginas html | |
− | + | '''<?php''' | |
− | + | '' instrucciones'' | |
+ | '''?>''' | ||
+ | *Nosotros siempre usaremos este estilo para escribir código | ||
+ | *Lo podemos embeber en código html .... o no. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Otros modos menos usados | ||
+ | :Estilo asp | ||
+ | '''<%''' | ||
+ | '' instrucciones'' | ||
+ | '''%>''' | ||
+ | *Para ello hemos de tener habilitado la etiqueta de php.ini | ||
+ | asp_tags 1 | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Estilo corto | ||
+ | '''<?''' | ||
+ | '' instrucciones'' | ||
+ | '''?>''' | ||
+ | *Para ello hemos de tener habilitado la etiqueta de php.ini | ||
+ | short_open_tag 1 | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Sintaxis para editores HTML | ||
+ | '''<SCRIPT LANGAGE="PHP">''' | ||
+ | '' instrucciones'' | ||
+ | '''</SCRIPT>''' | ||
+ | *Guardamos el fichero con extensión .php | ||
+ | **Así sabemos que el interprete php tiene que ejecutar código | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ===Dónde poner el código embebido=== | ||
+ | <br/> | ||
+ | {{Pregunta|Dónde escribir código php}} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Donde queramos que se ejecute algo | ||
+ | <hr/> | ||
+ | [[Imagen:codigoPHP.png|center|900px]] | ||
+ | *Se ejecuta como si fuera un solo programa | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ===Como escribir PHP 2=== | ||
+ | *Escribiendolo en un fichero aparte | ||
+ | **incluimos el fichero explícitamente | ||
+ | <source lang=php> | ||
+ | include('ruta/nobrefichero'); | ||
+ | require('ruta/nobrefichero'); | ||
+ | include_once('ruta/nombrefichero'); | ||
+ | require_once('ruta/nombrefichero'); | ||
+ | </source> | ||
+ | |||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | {{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"> | ||
− | <!-- | + | ===Planteando un lenguaje de programación=== |
+ | ;Lexicos | ||
+ | *Son las palabras reservadas del lenguaje | ||
+ | http://php.net/manual/es/reserved.keywords.php | ||
+ | ;Sintaxis | ||
+ | Reglas de construcción | ||
+ | Son las ya conocidas, pero veremos como se construyen las expresiones | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Semántica | ||
+ | Habla del significado | ||
+ | Estudiaremos alguna peculiaridad como el hecho de que php es un lenguaje '''''muy orientado a expresiones''''' | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ===Instrucciones en un lenguaje de programacion=== | ||
+ | #Inicio Fin de bloque | ||
+ | #Declaraciones (variables, constantes, funciones, clases, objetos, ...) | ||
+ | #Asignacion | ||
+ | #Instrucion/funcion de leer del teclado, escribir por pantalla | ||
+ | #Invocación (llamada a función o método) | ||
+ | #Estructura de control (selectiva, iterativa) | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Separando instrucciones | ||
+ | *Para separar una instrucción de otra usaremos ''''';''''' (punto y coma) | ||
+ | *Su uso es obligatorio a execepción de la última instrucción que se puede obviar | ||
+ | *Esto es por que el fin de código php '''''?>''''' implica esta instrucción | ||
+ | *Nosotros lo usaremos siempre | ||
+ | ;Instruccion de inicio fin de bloque | ||
+ | <source lang = php> | ||
+ | { //Instrucción de inicio de bloque | ||
+ | } //Instrucción de fin de bloque | ||
+ | </source> | ||
+ | |||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ===Declaraciones=== | ||
+ | #De variables | ||
+ | #De constantes | ||
+ | (Luego veremos funciones y en otro tema clases y objetos) | ||
+ | {{Pregunta| | ||
+ | * Qué es un '''''tipo de dato''''' | ||
+ | * Qué es una '''''variable''''' | ||
+ | }} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | <!--2----------------------------------> | ||
+ | {{Definicion| | ||
+ | '''''Un tipo de dato''''' es un conjunto de valores para los cuales hay definidos una serie de operaciones}} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | <!--3----------------------------------> | ||
{{Definicion| | {{Definicion| | ||
− | + | '''''Una variable''''' es una posición de memoria que va almacener algún valor de un determinado tipo, y cuyo contenido puede variar durante la ejecución de un programa | |
− | + | ||
− | + | ||
}} | }} | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ;PHP: '''''Tipado dinámico'''' | ||
+ | *Una características semántica muy, muy importante de php | ||
+ | {{Puntos clave|PHP es un lenguaje fuertemente tipado}} | ||
*Los lenguajes de programación pueden ser mas o menos exigentes en cuanto a la declaración de los tipos de las variables para poder ser usados durante la ejecución de un programa. | *Los lenguajes de programación pueden ser mas o menos exigentes en cuanto a la declaración de los tipos de las variables para poder ser usados durante la ejecución de un programa. | ||
− | + | </div> | |
− | + | ||
<div class="slide"> | <div class="slide"> | ||
− | + | ;tipado dinámico | |
− | + | *Lenguajes fuertemente tipos o débilmente tipados | |
− | * | + | *Esto tiene que ver con el hecho de que cada variable en un momento dado tiene un tipo, y lo podemos saber |
− | + | *Esto ocurre en php | |
+ | </div> | ||
− | + | <div class="slide"> | |
+ | ;Tipado dinámico | ||
+ | *Php no es estricto en el tipo de dato de una variable en cuanto que éste puede cambiar durante su vida. | ||
+ | *En este sentido php es un lenguaje de '''''tipado dinámico''''', el tipo de la variable depende del valor que tiene en un momento dado o de los operadores que lo afecten. | ||
+ | {{Puntos clave|PHP es un lenguaje de tipado dinámico}} | ||
+ | </div> | ||
+ | |||
+ | |||
+ | <div class="slide"> | ||
+ | ;Definir variables | ||
+ | *En php una variable es definida la primera vez que se usa. | ||
+ | *El tipo de la variable depende del valor que tenga asignado en un momento dado | ||
+ | *El identificador de php tiene que empezar por el signo '''''$''''' | ||
+ | *En php las variablas se prepresentas con el signo '''''$''''' seguido de un caracter de subrayado o una letra y luego letras, números y caracteres de subrayado en cualquier orden y número. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ;PHP y variables | ||
+ | {{Resumen| | ||
+ | #Php fuertemente tipado | ||
+ | #Php tipado dinámico | ||
+ | #Php no es estricto en la declaracion de variables (no hay que declararlas antes de usarlas) | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ;identificador de variables | ||
+ | {{Nota|identificador = $[_|a.zA..Z][_|a..zA..Z0..9]*}} | ||
+ | <source lang=php> | ||
+ | <?php | ||
$miVariable= 8;/*Variable de tipo entero*/ | $miVariable= 8;/*Variable de tipo entero*/ | ||
edad = 5/*Error en el identificador*/ | edad = 5/*Error en el identificador*/ | ||
$5edad = 5 /*Error en el identificador */ | $5edad = 5 /*Error en el identificador */ | ||
− | + | ?> | |
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ;Sensitive case? | ||
*El lenguaje es sensible a mayúsculas y minúsculas | *El lenguaje es sensible a mayúsculas y minúsculas | ||
− | **En los identificadores de variables | + | **En los identificadores de variables ($edad != $Edad) |
− | **No lo es en nombres de funciones | + | **No lo es en nombres de funciones $calculaEdad(1990) != $CalculaEdad(1990) |
− | **No lo es en palabras reservadas (if | + | **No lo es en palabras reservadas (if o If o IF o iF,...) |
</div> | </div> | ||
− | =Valores y tipos de datos | + | |
− | En Php tenemos 8 tipos de datos | + | <div class="slide"> |
− | *tipos básicos | + | <!--4----------------------------------> |
− | + | ||
+ | ===Valores y tipos de datos=== | ||
+ | http://php.net/manual/es/language.types.intro.php | ||
+ | *En Php tenemos 8 tipos de datos | ||
+ | *En php tenemos | ||
+ | #5 tipos básicos o primitibos (booleano, entero, real, string, NULL) | ||
+ | #3 compuestos (array, objeto, recurso) | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ;tipos básicos | ||
+ | #'''entero '''''integer''''' ''' | ||
+ | *Posible notación decimal/octal/hexadecimal | ||
decimal [0..9]+ | decimal [0..9]+ | ||
hexadecimal 0x[0..f]+ | hexadecimal 0x[0..f]+ | ||
Línea 55: | Línea 236: | ||
binario 0b[01]+ | binario 0b[01]+ | ||
*Todos ellos pueden ser positivos o negativos | *Todos ellos pueden ser positivos o negativos | ||
+ | </div> | ||
− | **cadena '''''string''''' | + | <div class="slide"> |
+ | <!--4----------------------------------> | ||
+ | <source lang=php> | ||
+ | **$Numero=10; | ||
+ | *Octal | ||
+ | **$NumeroOctal=067; | ||
+ | *Hexadecimal | ||
+ | **$NumeroHex=0cA56B; | ||
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ;integer | ||
+ | *Al imprimirlos con print los veré con valor decimal | ||
+ | *Para verlos en otras base hay que usar printf o format o utilizar las conversiones dechex o dechex o octdec, .... que veremos a continuación | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | |||
+ | ;cadena '''''string''''' | ||
+ | $frase="Esto es un literal de cadena de caracteres" | ||
**real o coma flotante '''''float''''' | **real o coma flotante '''''float''''' | ||
− | + | <source lang=php> | |
+ | $valor=$0.2345; | ||
+ | $valor=.54; | ||
+ | $valor=7E-12; | ||
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ;Booleano '''''boolean''''' | ||
<source lang=PHP> | <source lang=PHP> | ||
− | TRUE | + | $estado=TRUE; |
+ | $estado=TrUe; | ||
+ | $estado=falsE; | ||
</source> | </source> | ||
− | + | </div> | |
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ;NULL | ||
+ | *un tipo especial que solo tiene ese valor | ||
+ | *Una variable tiene el valor null | ||
+ | #Si aún no se le ha asignado valor, o éste se ha destruido (unset() | ||
+ | #Si se le ha asignado explícitametne el valor NULL. | ||
<source lang=PHP> | <source lang=PHP> | ||
− | + | $a=NULL; | |
+ | $a=null; | ||
</source> | </source> | ||
− | + | </div> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | <div class="slide"> | ||
+ | <!--4---------------------------------> | ||
+ | ;Tipos complejos | ||
+ | *Objetos básico en su aspecto de OOP | ||
+ | *Matrices o arrays muy muy utilizados | ||
+ | *Recursos este más que un tipo complejo es un tipo especial que hace referencia a un recurso externo referencia , como una conexión a una base de datos o como una referencia a un fichero pdf. | ||
+ | *Este tipo de variables las veremos más adelante | ||
+ | </div> | ||
<div class="slide"> | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
===Comentarios === | ===Comentarios === | ||
Son ignorados por el intérprete | Son ignorados por el intérprete | ||
− | + | <source lang=php> | |
+ | <?php | ||
/* | /* | ||
Este código no hace nada pero muestra | Este código no hace nada pero muestra | ||
Línea 87: | Línea 317: | ||
//Este es otro comentario de una sola línea | //Este es otro comentario de una sola línea | ||
#Este es otro modo de hacer comentarios tipo script de linux | #Este es otro modo de hacer comentarios tipo script de linux | ||
− | + | ?> | |
− | Este código nos visualizará | + | </source> |
+ | *Este código nos visualizará | ||
Valor de la variable 16 | Valor de la variable 16 | ||
</div> | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | |||
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ===Separación de instrucciones=== | ||
+ | *En php cada instrucción se separa de otra con ''''';''''' (punto y coma). | ||
+ | *El cierre de etiqueta php implica un ''''';''''' (punto y coma), por lo que podríamos no ponerlo | ||
+ | <source lang =php> | ||
+ | <?php | ||
+ | $a=5; | ||
+ | $echo'la instruccion de arriba es una y esta otra"; | ||
+ | $echo'esta instrucción puede no llevar ; | ||
+ | por ir antes de fin de etiqueta php, pero mejor ponerla" | ||
+ | ?> | ||
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
{{Actividad| | {{Actividad| | ||
− | Probamos a hacer programas | + | *Probamos a hacer programas sencillos donde asignamos y visualizamos valores |
− | entero: | + | #entero: |
− | cadena: | + | #cadena: |
− | booleano: | + | #booleano: |
− | real | + | #real |
− | NULL | + | #NULL |
}} | }} | ||
+ | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
===Valor de variable=== | ===Valor de variable=== | ||
− | * | + | *A una variable le puedo asignar un valor en cualquier momento |
*El tipo de la variable depende del valor que tiene | *El tipo de la variable depende del valor que tiene | ||
− | * | + | *Hay una serie de funciones del sistema relacionadas con los valores y las variables |
− | + | </div> | |
− | /* | + | |
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | ====Funciones de php de tipos y valores==== | ||
+ | http://php.net/manual/es/ref.var.php | ||
+ | *Existen una serie de funciones que son interesantes de conocer | ||
+ | *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"> | ||
+ | <!--4----------------------------------> | ||
+ | |||
+ | ;[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; | $VariableValor= 5; | ||
print ("El valor de la variable es $VariableValor"); | print ("El valor de la variable es $VariableValor"); | ||
Línea 117: | Línea 402: | ||
else | else | ||
print ("OtraVariableValor no no tiene valor asignado"); | print ("OtraVariableValor no no tiene valor asignado"); | ||
− | + | ?> | |
+ | </source> | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | <!--4----------------------------------> | |
− | + | ||
− | + | ;[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> | ||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
+ | {{Actividad| | ||
+ | Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo}} | ||
+ | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | {{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"> | ||
+ | <!--4----------------------------------> | ||
+ | |||
+ | {{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> | ||
− | <div class= | + | <div class="slide"> |
− | + | <!--4----------------------------------> | |
− | + | ||
+ | ;[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> | ||
− | <div class= | + | <div class="slide"> |
− | + | <!--4----------------------------------> | |
+ | |||
+ | ;[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> | ||
− | <div class= | + | <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> | ||
− | <div class= | + | <div class="slide"> |
− | + | {{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> | ||
− | <div class= | + | <div class="slide"> |
− | + | <!--4----------------------------------> | |
− | + | ||
− | + | ;[http://php.net/manual/es/function.unset.php unset] | |
− | + | *Destruye la variable especificada perdiéndose su valor | |
− | + | void unset ($var) | |
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | === | + | === Cadenas=== |
− | + | *En php las cadenas de caracteres, son expresiones literales | |
− | + | *Tenemos 4 maneras diferentes de poder expresar una cadena de caracteres como un literal | |
− | + | *Comillas dobles "" | |
− | + | *Comillas sencillas <nowiki>''</nowiki> | |
− | + | *Sintasix '''''heredoc''''' | |
− | + | *Sintaxis '''''nowdoc''''' | |
− | + | ||
− | + | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | ;Comillas dobles | |
+ | *En ellas se interpretan los caracteres especiales | ||
+ | #''''' $''''' seguido de un nombre, interpreta que es una variable y toma su valor (null si no tiene valor o no está definida | ||
+ | #'''''\''''' es un caracter de secuencia de escape, e interpreta que el carácter siguiente tiene un significado especial \\ \a \n \r \t , ... | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | *Si queremos que se ignore un carácter especial, éste ha de ir precedido por el caracter '''''\''''' | |
− | + | <source lang=php> | |
− | + | $nombre = 'pedro'; | |
− | + | echo "El valor de la variable \$nombre es $nombre"; | |
− | + | </source> | |
− | + | *El resultado sería | |
− | + | El valor de la variable $nombre es pedro | |
− | + | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | ;Comillas simples | |
− | + | *En ellas solo se interpreta el carácter, seguido de \ o bien seguido de la barra invertida '''''\\''''' comilla simple '''''\<nowiki>'</nowiki>''''' | |
+ | *El resto de caracteres no se interpretan | ||
</div> | </div> | ||
− | + | <div class="slide"> | |
− | <div class= | + | <source lang=php> |
− | == | + | $nombre = 'pedro'; |
− | + | echo 'El valor de la variable $nombre es $nombre y \\ \'texto\' si que se ve entre comillas simples'; | |
− | + | </source> | |
− | + | *La salida sería | |
− | + | El valor de la variable $nombre es $nombre y \ 'texto' si que se ve entre comillas simples'; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | ;Heredoc | |
+ | *Este tipo de expresión de string es útil para especificar cadenas largas en multilíneas | ||
+ | *Se comporta como un string entre comillas dobles para el tema de interpretar y escapar ciertos caracterres | ||
+ | *Se establece con el operador '''''<<<''''' | ||
+ | *A continuación viene un identificador | ||
+ | *Después empieza a especificarse la cadena de caracteres | ||
+ | *Para finalizarla se escribe en una nueva línea el identificador | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | == | + | <source lang=php> |
+ | <?php | ||
+ | $frase = <<<FINAL | ||
+ | Esta es una cadena | ||
+ | de caracteres que se asignará | ||
+ | a la variable frase | ||
+ | y termina con la palabra | ||
+ | con la que hemos empezado | ||
+ | FINAL; | ||
+ | <? | ||
+ | </source> | ||
+ | *La palabra final no debe tener ningún espacio ni tabulador antes | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | ;NewDoc | |
+ | *Es igual que heredoc , pero sin interpretar los caracteres especiales salvo '''''\\''''' '''''\.''''' | ||
+ | *O sea que es como un entrecomillado sencillo | ||
+ | *La sintasix es igual que la de heredoc, pero a diferencia el delimitador que se especifica al principio debe de ir entrecomillado con comillas simples | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | === | + | <source lang=php> |
+ | <?php | ||
+ | $nombre=pedro; | ||
+ | $frase = <<<'FINAL' | ||
+ | El valor de $nombre | ||
+ | es $nombre, pero aquí | ||
+ | no lo veo por que es newdoc | ||
+ | FINAL; | ||
+ | </source> | ||
</div> | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | + | <!--4----------------------------------> |
− | <div class= | + | <div class="slide"> |
− | === | + | |
− | * | + | === Funciones de salida=== |
− | * | + | *Construcciones básicas para salida de caracteres |
− | + | *No son funciones (con o sin paréntesis) son '''''echo'''' '''''print''''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <div class="slide"> | ||
+ | <!--4----------------------------------> | ||
− | + | ====echo==== | |
− | + | *Es el uso más sencillo | |
− | === | + | *Imprime una cadena como argumentos |
+ | *En la versión sin paréntesis también puedes pasar una lista de argumentos. | ||
+ | '''<?php''' | ||
+ | *Echo “primer argumento”, “segundo argumento”, “tercer argumeto” | ||
+ | '''?>''' | ||
</div> | </div> | ||
− | <div class= | + | |
− | === | + | <div class="slide"> |
+ | <!--4----------------------------------> | ||
+ | |||
+ | ====print==== | ||
+ | Tiene dos diferencias con echo | ||
+ | #Sólo puede aceptar un argumento | ||
+ | #Devuelve un valor que representa si la sentencia ha tenido o no éxito | ||
</div> | </div> | ||
+ | <div class="slide"> | ||
+ | *Para las siguientes actividades debes conocer las estructuras de control básicas. | ||
+ | {{Actividad| | ||
+ | Haz un programa que sume los 100 primeros números}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> | ||
+ | <div class="slide"> | ||
− | + | {{Actividad| | |
− | + | Haz un programa que obtenga de forma aleatoria dia (1-31)mes(1-12) y año(1-3000) y nos diga si la fecha es correcta o no y porqué}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
+ | <div class="slide"> | ||
− | + | {{Actividad| | |
− | + | *Haz un programa que a partir de precio hora y de número de horas calcule una nómina, teniendo en cuenta que: | |
− | + | #mas de 40 horas son extras (1.5 el precio base) | |
− | + | #IRPF < 600E exento | |
− | + | #Entre 600 y 800 5% | |
− | + | #Mas de 800 12 % | |
− | + | *Nos debe de dar detalle del bruto, descuentos y neto de salario}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
− | <div class= | + | <div class="slide"> |
− | + | ||
− | + | {{Actividad| | |
− | + | Un programa que nos diga si un número es o no primo}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</div> | </div> | ||
+ | <div class="slide"> | ||
+ | |||
+ | {{Actividad| | ||
+ | Haz un programa que muestre la tabla de multiplicar de un número aleatorio en una tabla. Intenta que las sentencias html queden fuera del código de php}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> | ||
+ | <div class="slide"> | ||
+ | ===Constantes=== | ||
+ | *Se definen con la funcion '''''define()''''' | ||
+ | <source lang=php> | ||
+ | define("IVA",0.21); | ||
+ | $total=$base*(1+IVA); | ||
+ | </source> | ||
+ | ;identificador | ||
+ | *Se usa el mismo criterio de construcción pero no empieza por $ | ||
+ | *Se pueden definir y utilizar en cualquier momento que se necesiten. | ||
+ | *Para saber si una constante está definida '''''defined()''''' | ||
+ | </div> | ||
− | <div class= | + | <div class="slide"> |
− | === | + | ===Constantes predefinidas=== |
− | + | *Como en otros lenguajes, existen una serie de constantes predefinidas | |
− | + | *Nos las ofrece el entorno y dependerán de él para su valor | |
− | + | *PHP Ofrece un gran número de constantes predefinidas http://php.net/manual/es/reserved.constants.php | |
− | + | *En php hay 8 constantes que su valor puede cambiar dependiendo del entorno donde se ejecutan | |
− | + | [http://php.net/manual/es/language.constants.predefined.php constantes] predefinidas en php | |
− | + | </div> | |
− | + | </div> | |
− | + | ||
− | + | ||
− | + | <div class="slide"> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | <div | + | {{Tarea| |
+ | Realiza un programa que visualice las constantes predefinidas '''variables''' vistas anteriormente, y al menos otras 8 de las constantes predefinidas '''estandar'''}} | ||
+ | </div> | ||
− | === | + | <div class="slide"> |
− | + | ===Ambito de una variable=== | |
− | + | *http://php.net/manual/es/language.variables.scope.php | |
− | + | *Ya sabemos que en PHP puedes utilizar variables en cualquier lugar de un programa. | |
− | + | *Si esa variable aún no existe, la primera vez que se utiliza se reserva espacio para ella. | |
+ | *En ese momento, dependiendo del lugar del código en que aparezca, se decide desde qué partes del programa se podrá utilizar esa variable. | ||
+ | *A esto se le llama visibilidad de la variable. | ||
</div> | </div> | ||
− | + | ||
− | + | <div class="slide"> | |
+ | ;Ambito de una variable | ||
+ | *En función de esto tenemos variables locales a la función y variables locales al script | ||
+ | <source lang=php> | ||
+ | $a = 1; | ||
+ | function prueba() | ||
+ | { | ||
+ | // Dentro de la función no se tiene acceso a la variable $a anterior | ||
+ | $b = $a; | ||
+ | // Por tanto, la variable $a usada en la asignación anterior es una variable nueva | ||
+ | // que no tiene valor asignado (su valor es null) | ||
+ | } | ||
+ | </source> | ||
</div> | </div> | ||
− | <div class= | + | |
− | = | + | <div class="slide"> |
+ | ;Ambito de una variable | ||
+ | *Para poder hacer dentro de una función a una variable definida fuera, he de usar la palabra reservada '''''global''''' | ||
+ | <source lang=php> | ||
+ | $a = 1; | ||
+ | function prueba() | ||
+ | { | ||
+ | global $a; | ||
+ | $b = $a; | ||
+ | // En este caso se le asigna a $b el valor 1 | ||
+ | } | ||
+ | </source> | ||
+ | {{Actividad| | ||
+ | *Una funcion que coja un precio y lo actualice según el iva que reciba de argumento. | ||
+ | *El precio total se muestra fuera de la funcion | ||
+ | }} | ||
</div> | </div> | ||
− | + | ====Variables '''''static'''''==== | |
− | === | + | *Si una variable la declaramos static, hacemos que su posición de memoria no se elimine aunque no sea accesible por el script |
− | + | *Cuando volvamos a una sección del script donde vuelve a ser accesible, entonces retomaremos esa posicion de memoria, con el valor que tuviera | |
− | + | <source lang=php> | |
− | + | function contador() | |
+ | { | ||
+ | static $a=0; | ||
+ | $a++; | ||
+ | // Cada vez que se ejecuta la función, se incrementa el valor de $a | ||
+ | } | ||
+ | </source> | ||
</div> | </div> | ||
− | <div class= | + | |
− | + | <div class="slide"> | |
− | * | + | ;static |
− | + | *Las variables estáticas deben inicializarse en la misma sentencia en que se declaran como estáticas. De esta forma, se inicializan sólo la primera vez que se llama a la función. | |
− | + | {{Tarea| | |
− | + | *Haz un programa que llame 20 veces a una función | |
− | + | *Cada vez que llame a la función, la función muestra un mensaje que me diga '''''me has llamado 1 vez''''', o '''''me has llamado 20 veces''''' | |
− | + | }} | |
− | + | ||
</div> | </div> | ||
− |
Última revisión de 06:11 1 may 2023
_ Variables static
function contador() { static $a=0; $a++; // Cada vez que se ejecuta la función, se incrementa el valor de $a } </div> |