|
|
(45 revisiones intermedias por el mismo usuario no mostrado) |
Línea 9: |
Línea 9: |
| [[Imagen:DWES_TituloTema3.gif|center]] | | [[Imagen:DWES_TituloTema3.gif|center]] |
| |} | | |} |
− | __NOTOC___
| + | |
| + | |
| + | __TOC__ |
| {{#widget:Slides}} | | {{#widget:Slides}} |
| <div class="slides layout-regular template-default"> | | <div class="slides layout-regular template-default"> |
− | <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 class="slide">
| |
− | ;Obtención del lenguaje de marcas para mostrar en el cliente
| |
− | [[Imagen:procesoPHP.png ]]
| |
− | {{Puntos clave|
| |
− | ;El documento PHP, una vez interpretado correctamente en el servidor, produce una página HTML que será enviada al cliente.
| |
− | }}
| |
− | </div>
| |
− | <div class="slide">
| |
− | ;El servidor en acción
| |
− | <br/>
| |
− | {{Puntos clave|
| |
− | ;El código PHP está embebido en documentos HTML,
| |
− | ;Esto permite introducir dinamismo fácilmente a un sitio web.
| |
− | }}
| |
− | </div>
| |
− | <div class="slide">
| |
− | ;El servidor en acción
| |
− |
| |
− | {{Puntos clave|
| |
− | ; El intérprete PHP ignora el texto del fichero HTML
| |
− | ; Hasta que encuentra una etiqueta de inicio del bloque de código PHP embebido.
| |
− | }}
| |
− | </div>
| |
− | <div class="slide">
| |
− | ;Restricciones del servidor con php
| |
− | *Como PHP se ejecuta del lado del servidor sólo puede tener acceso a los datos del propio servidor.
| |
− |
| |
− | **No puede acceder a los recursos del cliente
| |
− | **No puede saber qué hora es en el cliente
| |
− | **No puede acceder a los archivos del cliente
| |
− | ***Salvo la excepción de las Cookies
| |
− | </div>
| |
− | <div class="slide">
| |
− | ;Configuraciones
| |
− | ;Directivas de PHP.ini
| |
− | http://www.php.net/manual/es/ini.list.php
| |
− | ;Funciones que quedaron obsoletas en PHP 5.3.x
| |
− | http://php.net/manual/es/migration53.deprecated.php
| |
− | ;Características obsoletas en PHP 7.0.x
| |
− | http://php.net/manual/es/migration70.deprecated.php
| |
− | http://php.net/manual/es/migration70.incompatible.php
| |
− |
| |
− | </div>
| |
− | <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 class="slide">
| |
− | ===Planteando un lenguaje de programación===
| |
− | ;Léxicos
| |
− | *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
| |
− | {{Puntos clave|
| |
− | ;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 programación===
| |
− | #Inicio Fin de bloque
| |
− | #Instrucción/función de leer del teclado, escribir por pantalla
| |
− | #Declaraciones (variables, constantes, funciones, clases, objetos, ...)
| |
− | #Asignación
| |
− | #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">
| |
− | === Funciones de salida===
| |
− | *Construcciones básicas para salida de caracteres
| |
− | *En PHP,en realidad no son funciones por lo que pueden ir sin parénteis (con o sin paréntesis):
| |
− | # '''''echo'''''
| |
− | # '''''print'''''
| |
− | </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 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 class="slide">
| |
− | {{Tip|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 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>
| |
− |
| |
− |
| |
− |
| |
− | ===Declaraciones===
| |
− | #De variables
| |
− | #De constantes
| |
− | #De funciones
| |
− | #De clases
| |
− | #De objetos y recursos (clases ya creadas o incluidas)
| |
− | {{Tip|Las funciones,clases y objetos los veremos en otro tema}}
| |
− | {{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|
| |
− | '''''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.
| |
− | </div>
| |
− | <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 variables se representan con el signo '''''$''''' seguido de un carácter 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 es un lenguaje tipado
| |
− | #Php tipado dinámico
| |
− | #Php no es estricto en la declaracion de variables (La declaración ocurre la primera vez que se usa)
| |
− | }}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | <!--4---------------------------------->
| |
− | ;identificador de variables
| |
− | {{Puntos clave|identificador = $[_|a.zA..Z][_|a..zA..Z0..9]*
| |
− | <source lang=php>
| |
− | <?php
| |
− | $miVariable= 8;/*Variable de tipo entero*/
| |
− | edad = 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
| |
− | **En los identificadores de variables ($edad != $Edad)
| |
− | **No lo es en nombres de funciones $calculaEdad(1990) != $CalculaEdad(1990)
| |
− | **No lo es en palabras reservadas (if o If o IF o iF,...)
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | <!--4---------------------------------->
| |
− | ===Valores y tipos de datos===
| |
− | http://php.net/manual/es/language.types.intro.php
| |
− | *En Php tenemos 8 tipos de datos
| |
− | #5 tipos básicos o primitivos (un valor)
| |
− | #3 tipos compuestos (conjunto de valores).
| |
− | </div>
| |
− |
| |
− |
| |
− |
| |
− | <div class="slide">
| |
− | {{Actividad|Title=Tipos primitivos|
| |
− | #'''''boolean''''': Valores TRUE y FALSE.
| |
− | #''''entero''''': números enteros ... -2,-1,0,1,2 ...
| |
− | #'''''real''''': números reales
| |
− | # '''''string''''': Cadena de caracteres
| |
− | #'''''NULL''''': Valor null
| |
− | }}
| |
− | </div>
| |
− | <div class="slide">
| |
− |
| |
− | {{Actividad|Title=Tipos compuestos|
| |
− | #'''''array''''': conjunto enumerado por la clave de valores de diferente tipo
| |
− | # '''''objeto''''': Instancia de una clase en memoria
| |
− | # '''''recurso''''': objeto que permite utilizar elementos del sistema o '''recursos''', (por ejemplo conector a una base de datos)
| |
− | }}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | <!--4---------------------------------->
| |
− | ;tipos básicos
| |
− | #'''entero '''''integer''''' '''
| |
− | *Posible notación decimal/octal/hexadecimal
| |
− | decimal [0..9]+
| |
− | hexadecimal 0x[0..f]+
| |
− | octal 0[0..7]+
| |
− | binario 0b[01]+
| |
− | *Todos ellos pueden ser positivos o negativos
| |
− | </div>
| |
− |
| |
− | <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'''''
| |
− | <source lang=php>
| |
− | $valor=$0.2345;
| |
− | $valor=.54;
| |
− | $valor=7E-12;
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | <!--4---------------------------------->
| |
− | ;Booleano '''''boolean'''''
| |
− | <source lang=PHP>
| |
− | $estado=TRUE;
| |
− | $estado=TrUe;
| |
− | $estado=falsE;
| |
− | </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>
| |
− | $a=NULL;
| |
− | $a=null;
| |
− | </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">
| |
− | <!--4---------------------------------->
| |
− | ===Comentarios ===
| |
− | Son ignorados por el intérprete
| |
− | <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
| |
− | ?>
| |
− | </source>
| |
− | *Este código nos visualizará
| |
− | Valor de la variable 16
| |
− | </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|
| |
− | *Probamos a hacer programas sencillos donde asignamos y visualizamos valores
| |
− | #entero:
| |
− | #cadena:
| |
− | #booleano:
| |
− | #real
| |
− | #NULL
| |
− | }}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Valor de variable===
| |
− | *A una variable le puedo asignar un valor en cualquier momento
| |
− | *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;
| |
− | 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">
| |
− | <!--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 class="slide">
| |
− | <!--4---------------------------------->
| |
− |
| |
− | {{Actividad|
| |
− | Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo}}
| |
− | </div>
| |
− |
| |
− | <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 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 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 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">
| |
− | {{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">
| |
− | <!--4---------------------------------->
| |
− |
| |
− | ;[http://php.net/manual/es/function.unset.php unset]
| |
− | *Destruye la variable especificada perdiéndose su valor
| |
− | void unset ($var)
| |
− | </div>
| |
− |
| |
− | <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 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 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 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 class="slide">
| |
− | <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 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 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 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 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>
| |
− |
| |
− |
| |
− | <!--4---------------------------------->
| |
− |
| |
− | <div class="slide">
| |
− |
| |
− |
| |
− |
| |
− | <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 class="slide">
| |
− |
| |
− | {{Actividad|
| |
− | Un programa que nos diga si un número es o no primo}}
| |
− | </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 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="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 class="slide">
| |
− |
| |
− | {{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 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 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 class="slide">
| |
− | ====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 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 class="slide">
| |
− | <!--4---------------------------------->
| |
− |
| |
− | === Estructuras de control 1===
| |
− | A continuación veremos las estructuras de control
| |
− | Son de tres tipos
| |
− | #Selección
| |
− | #Iteración
| |
− | #Secuenciales
| |
− | *Para construirlas necesitamos operadores
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Selección if===
| |
− | *Sentencia que evlúa una expresión booleana y ejectua o no en función de que dicha expresión sea true o false
| |
− | <source lang=php>
| |
− | if (condicion)
| |
− | Sentencia 1;
| |
− | </source>
| |
− | <hr>
| |
− | <source lang=php>
| |
− | if (condicion){
| |
− | Sentencia_1;
| |
− | Sentencia_2;
| |
− | }
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Sentencias de control
| |
− | if (expresion)
| |
− | Sentencia_1;
| |
− | else
| |
− | Sentencia_2;
| |
− | </source>
| |
− | *También existe la opción elseif donde aportaremos una condición que se ha de cumplir para que se ejectuten las sentencias que a continuación acompañan.
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Estructura de control
| |
− | <source lang=php>
| |
− | if (expresion){
| |
− | sentencias;
| |
− | }
| |
− | elseif (expresion){
| |
− | sentencias;
| |
− | }
| |
− | else{
| |
− | sentencias;
| |
− | }
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− |
| |
− | *Alternativamente puede usarse esta sintaxis que es usada cuando se quiere intercalar condigo html fuera del php.
| |
− | *También se puede usar la sintaxis vista anteriormente, pero parece que esta quede más compacta.
| |
− |
| |
− | <source lang=php>
| |
− | if (condicion):
| |
− | Sentencia 1;
| |
− | endif;
| |
− | </source>
| |
− | </div>
| |
− | <div class="slide">
| |
− |
| |
− | *Ahora lo vemos con código html
| |
− | <source lang=php>
| |
− | <?php if (true): ?>
| |
− |
| |
− | <h1>Esta frase seguro que aparece ahor</h1>
| |
− | <!--escribirmos código html -->
| |
− | <?php else: ?>
| |
− | <h1>Aquí escribiré poco ya que no va a aparecer nada</h1>
| |
− | <!--escribirmos código html -->
| |
− | <?php endif ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Operadores ternario===
| |
− | *Es una forma más compacta de un if else con una única instrucción.
| |
− | Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
| |
− | {{Actividad|Programa que me de si un número aleatorio es par o impar}}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Seleccion switch===
| |
− | *Este es un selector múltiple
| |
− | *La sentencia case puede albergar cualquier valor de un tipo simple, no está limitado a enteros como en otros lenguajes
| |
− | *Estructura indicada cuanto tengamos más de dos casos ante una variable o sitiación que evaluemos excluyentes entre sí
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Switch
| |
− | <source lang=php>
| |
− | <?php
| |
− | switch ($nombre){
| |
− | case "Maria":
| |
− | echo "eres una chica";
| |
− | break;
| |
− | case "Pedro";
| |
− | echo "eres una chico";
| |
− | break;
| |
− | default:
| |
− | echo "no se qué nombre tienes";
| |
− | }
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Iteración while===
| |
− | *Como en todos los bucles debemos siempre tener encuenta
| |
− | #inicializar la variable de control
| |
− | #acutalizarla correctamente dentro del bucle
| |
− | #realizar de forma correcta la evaluación de condiciòn (< o <=), (> o >=), ...
| |
− | <source lang=php>
| |
− | <?php
| |
− | $i = 1;
| |
− | while ($i <= 10) {
| |
− | echo "iteración número ."$i++;
| |
− | }
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | *Alternativamente podemos usar la siguiente sintaxis
| |
− | <source lang=php>
| |
− | $i = 1;
| |
− | while ($i <= 10):
| |
− | $i++;
| |
− | echo "iteración número ."$i;
| |
− | endwhile;
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− |
| |
− | ===Iteración do-while===
| |
− | *Este tipo de bucle donde seguro que al menos se ejectua un iteración
| |
− | *Respecto al anterior nos ahorra una comparación.
| |
− | <source lang=php>
| |
− | <?php
| |
− | $num=10;
| |
− | $resultado=1;
| |
− | *Esta es la única sintaxis posible con este tipo de sentencia
| |
− | do {
| |
− | $resultado:=$resultado*$num;
| |
− | $num--;
| |
− | } while ($num>0);
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Iteración for===
| |
− | *Es un bucle de tipo contador
| |
− | <source lang=php>
| |
− | for (expresion_inicial; condicion;expresion_actualizar){
| |
− | sentencias;
| |
− | }
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Estructura for
| |
− | *tiene tres partes
| |
− | ;expresion_inicial:
| |
− | :Se ejecuta una sóla vez al comienzo del bucle. se usa para inicializar variables
| |
− | ;condicion
| |
− | :Es una expresión booleana que se evalúa en cada interación
| |
− | :Si da un valor false, ya no se ejectua ninguna vez
| |
− | :Si no hay expresión se toma como true
| |
− | :En este caso para que el bucle no sea infinito deberá llevar algún break (instrucción de terminación de bloque) en algún momento
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Estrucutura for: condición
| |
− | <source lang=php>
| |
− | <?php
| |
− | for ($a=0; ;$a++){
| |
− | echo "$a*$a=".$a*$a."<br>";
| |
− | if ($a==10)
| |
− | break;
| |
− | }
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− | <div class="slide">
| |
− | ;Estructura for: expresion_actualizar
| |
− | :Esta expresión actualiza el valor de alguna/as variables
| |
− | :Se ejecuta en cada interacion
| |
− | *El ejemplo anterior
| |
− | <source lang=php>
| |
− | <?php
| |
− | for ($a=0;$a<10 ;$a++){
| |
− | echo "$a*$a=".$a*$a."<br>";
| |
− | }
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ===Operadores===
| |
− | *Son símbolos que realizan acciones sobre operandos y dan como resultado un valor
| |
− | *Tenmos diferentes tipos de operadores en función del tipo de operandos y del resultado
| |
− | ;operadores aritméticos (+,-,*,/,%,**, ++, --)
| |
− | *Retorna un valor numérico
| |
− | *el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Operadores
| |
− | <source lang=php>
| |
− | $a=5;
| |
− | if ($a++==5)
| |
− | echo '$a que vale '.$a.' dice que vale 5 ???? <br>'
| |
− | . 'Esto es por que primero compara y luego incrementa<br>';
| |
− |
| |
− | echo 'ahora $a vale '.$a.'<br>';
| |
− |
| |
− | if (++$a==6)
| |
− | echo 'esto nunca saldrá ya que $a se incrementa antes de comparar';
| |
− | else
| |
− | echo 'efectivamente ahora $a ya no vale 6 sino '.$a.'<br>';
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Operadores
| |
− | *El código anterior genera la siguiente salida
| |
− | <source lang=php>
| |
− | $a que vale 6 dice que vale 5 ????
| |
− | Esto es por que primero compara y luego incrementa
| |
− | ahora $a vale 6
| |
− | efectivamente ahora $a ya no vale 6 sino 7
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
| |
− | :Este tipo de operadores genera un booleano como resultado de evaluar la expresión
| |
− | {{Puntos clave|
| |
− | *'''''==''''' operador de comparacion '''''igual que''''' (mismo valor)
| |
− | *'''''===''''' operador de comparacion '''''exactamente igual que''''' (mismo valor y tipo)
| |
− | }}
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Operador == Vs ===
| |
− | <source lang=php>
| |
− | $num=1;
| |
− | if ($num==true)
| |
− | echo '$num es igual a true<br>';
| |
− | if ($num===true){
| |
− | echo "esto nunca se ejecutará";
| |
− | }else
| |
− | echo '$num no es exactamente igual a true';
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Operador == vs ===
| |
− |
| |
− | *El código anterior generaría la siguiente salida
| |
− | <source lang=php>
| |
− | $num es igual a true
| |
− | $num no es exactamente igual a true
| |
− | </source>
| |
− | *Ver la sección '''''comparación de tipos''''' de la página oficial
| |
− | http://php.net/manual/es/language.operators.comparison.php
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;operadores de concatenacón( .) concatena cadena de caracteres.
| |
− | :El operador + no está sobre cargado, observa el siguiente código
| |
− | <source lang=php>
| |
− | $nombre="Maria";
| |
− | $apellido = " de la Oh";
| |
− |
| |
− | $nombreCompleto = $nombre.$apellido;
| |
− | echo "el valor de nombre completo es $nombreCompleto ---<br>";
| |
− |
| |
− | $nombreCompleto = $nombre+$apellido;
| |
− | echo "el valor de nombre completo es $nombreCompleto --<br>";
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;La salida del código anterior sería
| |
− | <source lang=php>
| |
− | el valor de nombre completo es Maria de la Oh ---
| |
− | el valor de nombre completo es 0 --
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | ;Operadores de asignacion (= , =>)
| |
− | :Se pueden combinar con los aritméticos (+=, *=, ...) y con los de concatenación (.=)
| |
− | :En este caso el valor de la variable de la izquierda se toma como primero operando
| |
− | ;Operador de asiganción
| |
− | <source lang=php>
| |
− | <?php
| |
− | $b=1;
| |
− | for ($a=0;$a<10;$a++){
| |
− | $b*=10;
| |
− | echo 'valor de $b ='.$b.'<br>';
| |
− | }
| |
− | ?>
| |
− | </source>
| |
− | </div>
| |
− |
| |
− | <div class="slide">
| |
− | *El código anterior genera la siguiente salida
| |
− | <source lang=php>
| |
− | valor de $b =10
| |
− | valor de $b =100
| |
− | valor de $b =1000
| |
− | valor de $b =10000
| |
− | valor de $b =100000
| |
− | valor de $b =1000000
| |
− | valor de $b =10000000
| |
− | valor de $b =100000000
| |
− | valor de $b =1000000000
| |
− | valor de $b =10000000000
| |
− | </source>
| |
− | </div>
| |
| | | |
− | <div class="slide">
| + | {{PHP/Introduccion}} |
− | ;operadores de ejecución (``)
| + | {{PHP/ProgramaConjuntoInstrucciones}} |
− | :PHP proporciona un operador especial que permite ejecutar sentencias
| + | {{PHP/InstruccionEscribir}} |
− | *Observa el siguiente código
| + | {{PHP/Declaraciones}} |
| | | |
− | <source lang=php> | + | <!--{{PHP/Variables}}--> |
− | <?php
| + | {{PHP/Declaraciones/Constantes}} |
− | $Discos = `df`;
| + | |
− | echo "<pre>$Discos</pre>";
| + | |
− | ?>
| + | |
− | </source>
| + | |
− | </div>
| + | |
| | | |
− | <div class="slide">
| + | {{PHP/Declaracion/Funciones}} |
| | | |
− | *El código anterior generará la siguiente salida
| + | {{PHP/EstructurasControl}} |
− | <source lang=php>
| + | {{PHP/Cadenas}} |
− | Filesystem 1K-blocks Used Available Use% Mounted on
| + | {{PHP/OperadoresExpresiones}} |
− | /dev/sda5 86378608 6072360 75895384 8% /
| + | {{PHP/MasSintaxis}} |
− | none 4 0 4 0% /sys/fs/cgroup
| + | |
− | udev 4023720 4 4023716 1% /dev
| + | |
− | tmpfs 806904 1384 805520 1% /run
| + | |
− | none 5120 0 5120 0% /run/lock
| + | |
− | none 4034504 6588 4027916 1% /run/shm
| + | |
− | none 102400 28 102372 1% /run/user
| + | |
− | /dev/sda7 101797224 40480360 56122728 42% /home
| + | |
− | </source>
| + | |
− | </div>
| + | |
| | | |
− | <div class="slide">
| |
− | ;Invocando funciones del sistema
| |
− | *El operador anterior (comillas invertidas) es igual que la funcion '''''shell_exec()'''''
| |
− | http://php.net/manual/es/function.shell-exec.php
| |
− | </div>
| |
| | | |
− | <div class="slide">
| |
− | ;operadores lógicos (and,&&, or, ||, xor !)
| |
− | http://php.net/manual/es/language.operators.logical.php
| |
− | :Funcionan por cortocircuito
| |
− | :El operador '''''xor''''' da verdad si los operando son de diferente valor uno true y el otro false
| |
− | :La notación '''''and''''' y '''''&&''''' representan el mismo operador, igual ocurre con '''''or''''' y '''''||'''''
| |
− | *La diferencia entre los operadores es la prioridad
| |
− | http://php.net/manual/es/language.operators.precedence.php
| |
| |} | | |} |