Este documento presenta una introducción al lenguaje de programación PHP. Explica que PHP puede usarse para ejecutar scripts desde la línea de comandos o para desarrollar aplicaciones web, describiendo variables y funciones especiales para el desarrollo web. También introduce conceptos básicos de programación como variables, tipos de datos, estructuras de control, bucles y arrays/diccionarios.
1. PHP
David J.
Brenes
Martínez
Nuevos
Introducción a PHP lenguajes
Dónde y
Cómo
Concepos
David J. Brenes Martínez base
Inicio
Control de flujo
Curso de Extensión Universitaria Estructuras
E/S
Desarrollo web avanzado Módulos
Universidad de Oviedo Orientación a
Objetos
PHP en la
2010/03/22 Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
2. Tienes un nuevo proyecto. . .
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
Cómo
Concepos
base
Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
3. . . . ¡¡en otro lenguaje!!
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
Cómo
Concepos
base
Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
4. Problemas
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
La sintaxis es diferente Dónde y
Cómo
No conozco los métodos de la bibliotecas básicas Concepos
base
No conozco el entorno Inicio
Control de flujo
Buzzwords nuevos Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
5. ¿En serio?
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
if’s, while’s, asignaciones, for’s, foreach’s. . . Dónde y
Cómo
Documentación, documentación, documentación Concepos
base
IDEs de desarrollo Inicio
Control de flujo
¿Son necesarias de principio? Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
6. Entonces ¿no pasa nada?
PHP
David J.
Brenes
Martínez
Bueno, no. Nuevos
lenguajes
¿cómo leo de teclado? Dónde y
Cómo
Mis problemas con la MSDN Concepos
base
No todos son tan IDEs Inicio
Control de flujo
Más que un lenguaje, una tecnología Estructuras
E/S
Módulos
Orientación a
Cambio de paradigma Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
7. ¿Qué somos?
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
Cómo
Bueno, no sé. Concepos
base
Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
8. ¿Qué se espera de nosotros?
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Saber adaptarnos Dónde y
Cómo
Saber aprender Concepos
base
No depender de herramientas Inicio
Control de flujo
Tener una visión general para poder ir mas allá Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
9. Moraleja
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
Cómo
Vamos a aprender PHP. Concepos
Que nadie llore de de agobio, que con este podemos. base
Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
10. Moraleja
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
Cómo
Concepos
base
Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
11. PHP como lenguaje no Web
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
PHP es un lenguaje de scripting Dónde y
Cómo
Se ejecuta desde línea de órdenes Concepos
base
Permite programar pequeños programas de manera Inicio
Control de flujo
rápida y sencilla. Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
12. PHP como lenguaje no Web
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Se ejecuta un script Dónde y
Cómo
Ese script podrá incluir a otros Concepos
base
Ideal para tareas simples y pruebas Inicio
Control de flujo
Aplicable a frameworks importantes (Hadoop) Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
13. PHP como lenguaje Web
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Se ejecuta un script (igual) Dónde y
Cómo
La salida no es por pantalla, sino al navegador.
Concepos
Requiere un servidor web que entienda PHP base
Inicio
Funciones especiales para servir webs ($_GET, Control de flujo
Estructuras
$_POST...) E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
14. PHP como lenguaje Web
PHP
David J.
Brenes
Martínez
Variables especiales web: Nuevos
lenguajes
$_GET: Variables pasadas por petición GET Dónde y
Cómo
$_POST: Variables pasadas por petición POST Concepos
base
$_COOKIES: Variables almacenadas en cookies Inicio
Control de flujo
$_SESSION: Variables de sesión de un usuario Estructuras
E/S
Módulos
$_SERVER: Variables globales de servidor Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
15. PHP como lenguaje Web
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
¿Y el contexto de una aplicación? Dónde y
Cómo
En PHP hay scripts, no aplicaciones. Concepos
base
Inicio
No hay contexto de aplicación Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
16. Estructura de script
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
<?php Dónde y
Cómo
Concepos
/ / Codigo PHP base
Inicio
Control de flujo
?> Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
17. Variables
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
$variable ; Dónde y
Cómo
$variable = " valor " ; Concepos
$variable = $otra_variable ; base
Inicio
i n t $variable ; Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
18. Entrada/Salida - Pantalla
PHP
David J.
Brenes
Martínez
Nuevos
echo $ v a r i a b l e ; lenguajes
Dónde y
echo " v a l o r " ; Cómo
print ( $variable ) ; Concepos
base
print ( " valor " ) ; Inicio
print_r ( $array ) ; Control de flujo
Estructuras
var_dump ( $ v a r i a b l e ) ; E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
19. Condicional
PHP
David J.
Brenes
Martínez
<?php Nuevos
lenguajes
Dónde y
i f ( $condicion ) Cómo
{ Concepos
base
/ / Código Inicio
Control de flujo
} Estructuras
E/S
Módulos
Orientación a
?> Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
20. Bucles
PHP
David J.
Brenes
Martínez
while ( $ c o n d i c i o n )
Nuevos
{ lenguajes
/ / Codigo PHP Dónde y
Cómo
} Concepos
base
Inicio
do Control de flujo
Estructuras
{ E/S
Módulos
/ / Código PHP Orientación a
Objetos
} while ( $ c o n d i c i o n ) PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
21. Bucles
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
f o r ( $ i = 0 ; $ i < $ l i m i t e ; $ i ++) Dónde y
Cómo
{ Concepos
/ / Codigo PHP base
Inicio
} Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
22. Iteración de listas
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
foreach ( $ a r r a y as $elemento ) Dónde y
Cómo
{ Concepos
/ / Codigo PHP base
Inicio
} Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
23. Iteración de diccionarios
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
foreach ( $ a r r a y as $ c l a v e => $elemento ) Dónde y
Cómo
{ Concepos
/ / Codigo PHP base
Inicio
} Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
24. Arrays y diccionarios
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
$array = array ( ) ; Dónde y
$array = array ( 1 , 2 , 3 , 4 ) ; Cómo
$array = range ( 1 , 4 ) ; Concepos
base
$array = array ( " i n i c i o " => 1 , Inicio
Control de flujo
" fin => 2 ) ; Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
25. Arrays y diccionarios
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
echo $ a r r a y [ 0 ] ; Cómo
$array [ $clave ] = $valor ; Concepos
base
$array [ ] = $valor ; Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
26. Entrada/Salida - Ficheros
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
$ f i c h e r o = fopen ( $ p a t h _ t o _ f i c h e r o , Dónde y
$modo_de_apertura ) ; Cómo
fread ( $ f i c h e r o , $ b y t e s _ a _ l e e r ) ; Concepos
base
f w r i t e ( $ f i c h e r o , $cadena ) ; Inicio
Control de flujo
fclose ( $ f i c h e r o ) ; Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
27. Entrada/Salida - Ficheros
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
$contenido_string = fgets ( $path_to_fichero ) ; Dónde y
$ c o n t e n i d o _ a r r a y _ c s v = fgetcsv ( $ p a t h _ t o _ f i c h e r o Cómo
);
$contenido_array = f i l e ( $path_to_fichero ) ; Concepos
base
Inicio
Control de flujo
fputs ( $ p a t h _ t o _ f i c h e r o , $ c o n t e n i d o ) ; Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
28. Inclusión de código
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
include ( $ p a h _ f i c h e r o _ c o d i g o ) ; Dónde y
Cómo
i n c l u d e _ o nc e ( $ p a h _ f i c h e r o _ c o d i g o ) ; Concepos
require ( $pah_fichero_codigo ) ; base
Inicio
require_once ( $pah_fichero_codigo ) ; Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
29. Inclusión de código
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
include* no da error si el fichero no existe Dónde y
Cómo
require* da error y detiene el script si el fichero no Concepos
base
existe Inicio
Control de flujo
*_once solo incluye el fichero una vez Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
30. La Orientación a Objetos de PHP
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Muy tardía (autentica OO en PHP5). Dónde y
Cómo
Clases abstractas, interfaces... Concepos
base
Constructores Inicio
Control de flujo
Sin polimorfismo Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
31. La Orientación a Objetos de PHP
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
Lenguaje Dinámico Cómo
Concepos
Interfaces no explícitas base
Inicio
Ducktyping Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
32. Clase de ejemplo
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
c l a s s Ejemplo Dónde y
{ Cómo
Concepos
private $atributo_privado ; base
public $atributo_publico ; Inicio
Control de flujo
} Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
33. Clase de ejemplo
PHP
David J.
Brenes
Martínez
Nuevos
c l a s s Ejemplo lenguajes
{ Dónde y
Cómo
p u b l i c f u n c t i o n _ _ c o n s t r u c t ( $parametros )
Concepos
{ base
Inicio
// ... Control de flujo
Estructuras
} E/S
Módulos
} Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
34. Herencia
PHP
David J.
Brenes
Martínez
Nuevos
c l a s s Ejemplo lenguajes
Dónde y
extends C l a s e A b s t r a c t a Cómo
implements I n t e r f a z Concepos
base
{ Inicio
// ... Control de flujo
Estructuras
} E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
35. Variables especiales
PHP
David J.
Brenes
Martínez
Son variables que almacenan datos de diversos aspectos
Nuevos
web: lenguajes
$_GET: Parámetros de la URL Dónde y
Cómo
$_SESSION: Datos de la sesión de usuario Concepos
base
$_COOKIES: Datos escrito en la cookie del navegador Inicio
Control de flujo
Estructuras
$_SERVER: Datos del servidor E/S
Módulos
$_REQUEST: Datos compartidos en toda la Request Orientación a
Objetos
$_FILES: Ficheros subidos por formulario PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
36. Variables especiales
PHP
David J.
Brenes
Martínez
Son variables que almacenan datos de diversos aspectos Nuevos
lenguajes
web: Dónde y
Cómo
Son todas diccionarios
Concepos
base
Las claves de los diccionarios se especifican en la Inicio
petición ($_GET, $_POST, $_FILES), Control de flujo
Estructuras
programáticamente ($_SESSION, $_COOKIES) o bien E/S
Módulos
son parte de una especificacion fija ($_SERVER) Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
37. Parámetros en la URL
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
/ / URL : / i n d e x . php? a c t i o n = l o g i n Dónde y
Cómo
Concepos
echo $_GET [ " a c t i o n " ] ; base
Inicio
/ / Muestra " l o g i n " Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
38. Parámetros de formulario
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
/ / A l e n v i a r un f o r m u l a r i o con un campo Dónde y
/ / " search " i g u a l a " curso " Cómo
Concepos
base
echo $_POST [ " search " ] ; Inicio
Control de flujo
/ / Muestra " curso " Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
39. Datos en sesión
PHP
David J.
Brenes
Martínez
Nuevos
/ / Request 1 : lenguajes
Dónde y
$_SESSION [ " l o g i n " ] = " brenes " Cómo
Concepos
base
/ / Request 2 : Inicio
echo $_SESSION [ " l o g i n " ] ; Control de flujo
Estructuras
/ / Muestra " curso " E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
40. Cabeceras HTTP
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
header ( "HTTP / 1 . 0 404 Not Found " ) ; Cómo
Concepos
base
header ( ’ Content−t y p e : a p p l i c a t i o n / p d f ’ ) ; Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
41. Referencias
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Dónde y
Cómo
PHP.net: www.php.net Concepos
base
Inicio
Control de flujo
Estructuras
E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
42. Créditos
PHP
David J.
Brenes
Martínez
Nuevos
lenguajes
Las fotografías están sacadas de la cuenta del usuario Dónde y
Cómo
nataliej de Flickr: http://www.flickr.com/
Concepos
photos/nataliejohnson/1908713509/, http: base
Inicio
//www.flickr.com/photos/nataliejohnson/ Control de flujo
Estructuras
1845289869/in/set-72157602788803805/. E/S
Módulos
Orientación a
Objetos
PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia
43. Licencia
PHP
David J.
Brenes
Martínez
Estas transparencias se publican bajo licencia Creative Nuevos
Commons y se pueden redistribuir o modificar bajo las lenguajes
Dónde y
siguientes condiciones: Cómo
Se dé reconocimiento al autor de estas transparencias. Concepos
base
No se use con propósitos comerciales. Inicio
Control de flujo
Estructuras
Se distribuya con la misma licencia. E/S
Módulos
Texto de la licencia: http: Orientación a
Objetos
//creativecommons.org/licenses/by-nc-sa/3.0/ PHP en la
Web
Gestión de
parámetros
Operaciones sobre la
respuesta
Referencias,
Créditos y
Licencia