PHP (Tema 2) - Lenguaje PHP Básico
PHP (Tema 2) - Lenguaje PHP Básico
PHP (Tema 2) - Lenguaje PHP Básico
Sintaxis bsica
PHP es sensible a las maysculas Cmo se incrusta en la pgina web?
Las instrucciones se separan con un ; como en C. La marca final ?> implica un ; Comentarios: como en C, /* */ (varias lneas ) y // (una lnea)
Sintaxis bsica
Para imprimir: echo y print
echo: muestra una o ms cadenas echo cadena1 [, cadena2];
echo Hola mundo; echo Hola , mundo;
Sintaxis bsica
Ejemplo:
<HTML> <HEAD> <TITLE>Mi primer programa en PHP</TITLE> </HEAD>
<BODY> <?PHP print (<P>Hola mundo</P>); ?> </BODY> </HTML>
Sintaxis bsica
Uso de \n para generar cdigo HTML legible a) Sin \n
Cdigo PHP
Cdigo HTML
Salida
Prrafo 1
Prrafo 2
Sintaxis bsica
Uso de \n para generar cdigo HTML legible b) Con \n
Cdigo PHP
Cdigo HTML
Salida
Prrafo 1
Prrafo 2
Sintaxis bsica
Ejercicio 1: programa que muestra un mensaje
Ilustra cmo incrustar cdigo PHP en un documento HTML y cmo imprimir desde PHP
Sintaxis bsica
Inclusin de ficheros externos: Ambos incluyen y evalan el fichero especificado Diferencia: en caso de error include() produce un warning y require() un error fatal Se usar require() si al producirse un error debe interrumpirse la carga de la pgina Ejemplo:
include() require()
Sintaxis bsica
<HTML> <HEAD> <TITLE>Ttulo</TITLE> <?PHP // Incluir bibliotecas de funciones require ("conecta.php"); require ("fecha.php"); require ("cadena.php"); require ("globals.php"); ?> </HEAD> <BODY> <?PHP include ("cabecera.html"); ?> // Cdigo HTML + PHP . . . <?PHP include ("pie.html"); ?> </BODY> </HTML>
Tipos de datos
PHP soporta 8 tipos de datos primitivos:
Tipos escalares: boolean, integer, double, string Tipos compuestos: array, object Tipos especiales: resource, NULL
El tipo de una variable no se suele especificar. Se decide en tiempo de ejecucin en funcin del contexto y puede variar Funciones de inters:
La funcin gettype() devuelve el tipo de una variable Las funciones is_type comprueban si una variable es de un tipo dado: is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar(), is_string() La funcin var_dump() muestra el tipo y el valor de una variable. Es especialmente interesante con los arrays
Tipos de datos
Tipo integer (nmeros enteros) Tipo double (nmeros reales) Tipo boolean (lgico)
1.234, -5.33 Valores: true, false (insensibles a las maysculas) El 0 y la cadena vaca tienen valor false
27, -5, 0
Tipos de datos
Tipo string:
Las cadenas se encierran entre comillas simples o dobles:
simples: admite los caracteres de escape \ (comilla simple) y \\ (barra). Las variables NO se expanden dobles: admite ms caracteres de escape, como \n, \r, \t, \\, \$, \. Los nombres de variables S se expanden Ejemplos: $a = 9; print a vale $a\n; // muestra a vale $a\n print a vale $a\n; // muestra a vale 9 y avanza una lnea print <IMG SRC=logo.gif>; // muestra <IMG SRC=logo.gif> print <IMG SRC=\logo.gif\>; // muestra <IMG SRC=logo.gif> La forma es $inicial = $nombre{0};
Variables
Las variables siempre van precedidas de un $ El nombre es sensible a las maysculas Comienzan por letra o subrayado, seguido de letras, nmeros o subrayado Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES, $_ENV, $_REQUEST, $_SESSION
Variables
Variables variables
Se pueden crear nombres de variables dinmicamente La variable variable toma su nombre del valor de otra variable previamente declarada Ejemplo:
$a = "hola"; $$a = "mundo"; print "$a $hola\n"; print "$a ${$a}"; Resultado: hola mundo hola mundo
Variables
Ejemplo de variables variables: pgina internacionalizada (1)
<?PHP $mensaje_es="Hola"; $mensaje_en="Hello"; $idioma = "es"; $mensaje = "mensaje_" . $idioma; print $$mensaje; ?>
Variables
Ejemplo de variables variables: pgina internacionalizada (2)
<?PHP $mensaje_es="Hola"; $mensaje_en="Hello"; $idioma = "en"; $mensaje = "mensaje_" . $idioma; print $$mensaje; ?>
Constantes
Definicin de constantes:
define (CONSTANTE, hola); print CONSTANTE;
No llevan $ delante Slo se pueden definir constantes de los tipos escalares (boolean, integer, double, string)
Expresiones y operadores
Operadores aritmticos: +, -, *, /, %, ++, - Operador de asignacin: = operadores combinados: .=, +=, etc $a = 3; $a += 5; a vale 8 $b = hola ; $b .= mundo; b vale hola mundo Equivale a $b = $b . mundo; Operadores de comparacin: ==, !=, <, >, <=, >= y otros Operador de control de error: @. Antepuesto a una expresin, evita cualquier mensaje de error que pueda ser generado por la expresin Operadores lgicos: and (&&), or (||), !, xor and/&& y or/|| tienen diferentes prioridades Operadores de cadena: concatenacin: . (punto) asignacin con concatenacin: .=
Expresiones y operadores
Precedencia de operadores (de mayor a menor):
Estructuras de control
Estructuras selectivas: Estructuras repetitivas:
while for foreach
if-else switch
Estructuras de control
Estructura selectiva if-else
if (condicin) sentencia if (condicin) sentencia 1 else sentencia 2 if (condicin1) sentencia 1 else if (condicin2) sentencia 2 ... else if (condicin n) sentencia n else sentencia n+1
Mismo comportamiento que en C Las sentencias compuestas se encierran entre llaves elseif puede ir todo junto
Estructuras de control
Ejemplo de estructura selectiva if-else:
<?PHP if ($sexo == M) $saludo = "Bienvenida, "; else $saludo = "Bienvenido, "; $saludo = $saludo . $nombre; print ($saludo); ?>
Estructuras de control
Estructura selectiva switch
switch (expresin) { case valor_1: sentencia break; case valor_2: sentencia break; case valor_n: sentencia break; default sentencia }
n+1
Mismo comportamiento que en C, slo que la expresin del case puede ser integer, float o string
Estructuras de control
Ejemplo de estructura selectiva switch:
switch ($extension) { case ("PDF"): $tipo = "Documento break; case ("TXT"): $tipo = "Documento break; case ("HTML"): case ("HTM"): $tipo = "Documento break; default: $tipo = "Archivo " } print ($tipo);
Adobe PDF";
de texto";
HTML";
. $extension;
Estructuras de control
Estructura repetitiva while
while (condicin) sentencia
condicin
sentencia
Estructuras de control
Ejemplo de estructura repetitiva while:
<?PHP print ("<UL>\n"); $i=1; while ($i <= 5) { print ("<LI>Elemento $i</LI>\n"); $i++; } print ("</UL>\n"); ?>
Estructuras de control
Estructura repetitiva for
for (inicializacin; condicin; incremento) sentencia
inicializacin
sentencia
incremento
Estructuras de control
Ejemplo de estructura repetitiva for:
<?PHP print ("<UL>\n"); for ($i=1; $i<=5; $i++) print ("<LI>Elemento $i</LI>\n"); print ("</UL>\n"); ?>
Estructuras de control
Ejercicio 2: programa que calcula una tabla de multiplicar
Ilustra cmo manejar variables y cmo usar bucles
Funciones
Ejemplo:
function suma ($x, $y) { $s = $x + $y; return $s; }
$a=1; $b=2; $c=suma ($a, $b); print $c;
Funciones
Por defecto los parmetros se pasan por valor Paso por referencia:
function incrementa (&$a) { $a = $a + 1; }
Funciones
Argumentos por defecto
function muestranombre ($titulo = "Sr.") { print "Estimado $titulo:\n"; } muestranombre (); muestranombre ("Prof.");
Salida:
Estimado Sr.: Estimado Prof.:
Funciones
Los argumentos con valores por defecto deben ser siempre los ltimos:
function muestranombre ($nombre, $titulo= "Sr.") { print "Estimado $titulo $nombre:\n"; } muestranombre (Fernndez); muestranombre (Fernndez, "Prof.");
Salida:
Estimado Sr. Fernndez: Estimado Prof. Fernndez:
Tablas
Sintaxis:
array ([clave =>] valor, ...)
La clave es una cadena o un entero no negativo. El valor puede ser de cualquier tipo vlido en PHP, incluyendo otro array Ejemplos:
$color = array (rojo=>101, verde=>51, azul=>255); $medidas = array (10, 25, 15);
Acceso:
$color[rojo] // No olvidar las comillas $medidas[0]
El primer elemento es el 0
Tablas
Ejemplos:
foreach ($color as $valor) print Valor: $valor<BR>\n; foreach ($color as $clave => $valor) print Clave: $clave; Valor: $valor<BR>\n;
Salida:
Valor: Valor: Valor: Clave: Clave: Clave: 101 51 255 rojo; Valor: 101 verde; Valor: 51 azul; Valor: 255
Bibliotecas de funciones
Existen muchas bibliotecas de funciones en PHP Algunos ejemplos:
Funciones Funciones Funciones Funciones Funciones Funciones Funciones de manipulacin de cadenas de fecha y hora de arrays de ficheros matemticas de bases de datos de red
Algunas bibliotecas requieren la instalacin de componentes adicionales Todas las funciones de biblioteca estn comentadas en la documentacin de PHP
Bibliotecas de funciones
Funciones de manipulacin de cadenas
explode()
Divide una cadena en subcadenas array explode (string separator, string string [, int limit])
strstr()
Eliminan caracteres a la derecha, a la izquierda o por ambos lados de una cadena string rtrim ( string str [, string charlist])
Busca la primera ocurrencia de una subcadena Convierte una cadena a minscula / mayscula Compara dos cadenas con/sin distincin de maysculas
Bibliotecas de funciones
Funciones de fecha y hora
date()
Formatea una fecha segn un formato dado Ejemplo:
$fecha = date ("j/n/Y H:i"); print ("$fecha"); Resultado: 26/9/2005 17:36
strtotime()
Convierte una fecha en un timestamp de UNIX Ejemplo:
$fecha = date ("j/n/Y", strtotime(5 april 2001")); print ("$fecha"); Resultado: 5/4/2001
Bibliotecas de funciones
Funciones de arrays
array_count_values()
array_search() count()
Calcula la frecuencia de cada uno de los elementos de un array Busca un elemento en un array Cuenta los elementos de un array Ordena y reindexa un array (r=decreciente) Ordena por claves un array (r=decreciente)
sort(), rsort()
ksort(), krsort()
Bibliotecas de funciones
Ejercicio 3: programa que muestra la fecha actual
Ilustra cmo usar comentarios, tablas y funciones (propias y de biblioteca). Tambin cmo usar el manual de PHP