Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla
Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054 Con base hexadecimal: 0x32f, 0xdd Reales Notación decimal: 34.4, -23.3 Notación exponencial: 32.4e-7, -10.4e5 Lógicos (booleanos): TRUE, FALSE Valor nulo: NULL Se emplea únicamente para comprobar si una variable tiene un valor asignado
Tipos de datos Cadenas (strings): Delimitadas por comillas dobles " Se expande cualquier variable que haya dentro de la cadena Se admiten las siguientes secuencias de escape \b: Retrocede un carácter \n: Nueva ĺınea \r: Retorno de carro \t: Tabulador \\: Barra invertida \ : Comillas simples \": Comillas dobles Delimitadas por comillas simples No se expande ninguna variable que haya dentro de la cadena Sólo se admiten las siguientes secuencias de escape \\: Barra invertida \ : Comillas simples
Variables Las variables son contenedores donde se almacenan valores para su posterior uso Las variables en PHP se representan con un símbolo $ seguido por el nombre de la variable Como nombre de variable se puede utilizar cualquier secuencia de caracteres alfanuméricos y, que no comience por un número En PHP no hace falta declarar las variables antes de usarlas Una misma variable se puede reutilizar asignándole datos de distinto tipo Todas las variables son globales salvo las utilizadas en las definiciones de funciones
Variables JavaScript distingue entre mayúsculas y minúsculas, así que $dato, $Dato y $DATO son tres variables distintas Variables en PHP <?php $dato = 3; $Dato = 5; $DATO = 7; echo $dato; echo $Dato; echo $DATO;?>
Arrays asociativos Un array asociativo es un tipo de dato compuesto que asocia claves con valores Las claves pueden ser números enteros o cadenas Los valores pueden ser cualquier cosa, incluso otro array asociativo Si $A es un array asociativo entonces $A[ clave ] es el valor asociado a la clave en $A $A[n] es el valor asociado a la clave númerica n en $A El contenido de un array asociativo se puede indicar en el momento de su construcción (con la función array()) o mediante la asignación de valores a nuevas claves en el array Para ver todo el contenido de un array asociativo (claves y valores), se puede utilizar la función print r()
Arrays asociativos Al construir un array asociativo se puede indicar la asociación entre claves y valores o únicamente valores Para los valores que no tienen una clave asociada se utilizan claves numéricas contando desde 0 Se puede construir un array sin contenido $A = array() Al evaluar $A = array(0, cero => 1, 4, 5 => 9), se tendrá que $A[0] vale 0, $A[ cero ] vale 1, $A[1] vale 4 y $A[5] vale 9 Se pueden añadir nuevos valores al array indicando la clave Después de evaluar $A[ uno ] = 16, se tendrá que $A[ uno ] vale 16 Se pueden añadir nuevos valores al array sin indicar la clave, en este caso se utilizará la siguiente clave numérica a la última utilizada Después de evaluar $A[] = 25, se tendrá $A[6] vale 25
Arrays asociativos Para construir arrays bidimensionales basta con indicar un array como valor asociado a una clave Array bidimensional <?php $A = array(array(1,2,3), array(4,5,6), array(7,8,9));?> Para acceder a los elementos de un array multidimensional hay que indicar las claves una a una En el ejemplo anterior $A[1][2] tiene el valor 6
Variables predefinidas Arrays asociativos predefinidos $ SERVER: Variables definidas por el servidor Web $ ENV: Variables de entorno del servidor Web $ GET: Variables procedentes de un formulario con el método "get" $ POST: Variables procedentes de un formulario con el método "post" $ FILES: Variables procedentes de la descarga de ficheros desde un formulario $ SESSION: Variables de sesion En cada uno de estos arrays asociativos las claves son nombres de variables y los valores son los valores de éstas
Variables procedentes de la URI En la URI de un documento se pueden indicar valores de variables de la siguiente forma: http://.../variables.php?hora=20&minuto=34 Estas variables se almacenan en el array asociativo $ GET Variables procedentes de la URI <?php if ( $ GET[ hora ] < 20 ) { if ( $ GET[ hora ] < 13 ) { echo Buenos días ; else { echo Buenas tardes ; else { echo Buenas noches ;?>
Instrucciones Las instrucciones son sentencias de código El final de una instrucción se indica con ; En algunas ocasiones es necesario agrupar instrucciones en un bloque, para ello utilizamos los delimitadores { y Los bloques de instrucciones no necesitan el indicador de final de instrucción ;
Comentarios Comentarios de bloque: delimitados por /* y */ Comentarios de bloque en PHP <?php if ( date( H,time()) > 21 ) { /* La función date extrae la hora H de la fecha actual en el navegador */ echo Buenas noches ; else { echo Buenos días ;?>
Comentarios Comentarios de ĺınea: comienzan con // (o #) y abarcan hasta el final de la ĺınea o la marca de final de código PHP (?>) Comentarios de ĺınea en PHP <?php if ( date( H,time()) > 21 ) { echo Buenas noches ; // Es de noche else { echo Buenos días ; # Es de día // Final del código PHP?> // Esto no es comentario
Operadores Operadores aritméticos Operador Uso Significado - -x Opuesto + x + y Suma - x - y Resta * x * y Multiplicación / x / y División % x % y Módulo
Operadores Operadores de asignación Operador Uso Significado = $a = x Asigna a $a el valor de x += $a += x $a = $a + x -= $a -= x $a = $a - x *= $a *= x $a = $a * x /= $a /= x $a = $a / x %= $a %= x $a = $a % x
Operadores Operadores de incremento y decremento Operador Uso Significado ++ $a++ Usar $a y después $a = $a + 1 ++$a Hacer $a = $a + 1 y después usar $a -- $a-- Usar $a y después $a = $a - 1 --$a Hacer $a = $a - 1 y después usar $a
Operadores Operadores de comparación Operador Uso Significado == x == y Equivalencia!= x!= y Distinto de <> x <> y Distinto de === x === y Identidad (valor y tipo)!== x!== y No identicos (valor y tipo) < x < y Menor que <= x <= y Menor o igual que > x > y Mayor que >= x >= y Mayor o igual que
Operadores Operadores lógicos Operador Uso Significado and x and y Conjunción or x or y Disyunción xor x xor y Disyunción excluyente!!x Negación && x && y Conjunción x y Disyunción
Operadores Operador condicional Operador Uso Significado? : x? y : z Si x se evalúa a TRUE entonces evalúa y, si x se evalúa a FALSE entonces evalúa z
Operadores Operadores de cadenas Operador Uso Significado. s1. s2 Concatenación.= $s.= s2 $s = $s. s2
Condicionales Estructura del condicional if if (condicion) { consecuencia else { alternativa Funcionamiento Si la condicion es cierta, se evalúa la consecuencia, en caso contrario se evalúa la alternativa Tanto la consecuencia como la alternativa pueden contener más de una instrucción La parte else { alternativa es opcional
Condicionales Condicional simple <?php if ( date( H,time()) < 13 ) { echo Buenos días ;?> Condicional completo <?php if ( date( H,time()) < 13 ) { echo Buenos días ; else { echo Buenas tardes ;?>
Condicionales Condicionales anidados <?php if ( date( H,time()) < 13 ) { echo Buenos días ; elseif ( date( H,time()) < 20 ) { echo Buenas tardes ; else { echo Buenas noches ;?> Se pueden anidar tantos condicionales como sean necesarios para obtener el resultado esperado En este caso hay una anidación en la alternativa del primer condicional usando la estructura elseif
Condicionales Condicionales anidados <?php if ( date( H,time()) < 20 ) { if ( date( H,time()) < 13 ) { echo Buenos días ; else { echo Buenas tardes ; else { echo Buenas noches ;?> Aunque es menos natural, también se puede hacer una anidación en la consecuencia del condicional
Bucles Estructura del bucle for for (inicializacion; condicion; actualizacion) { instrucciones Funcionamiento: Se realiza la inicializacion Mientras la condicion sea cierta, se evalúan las instrucciones y después la actualizacion Si la condicion es falsa, se termina el bucle Usualmente existe una variable de control del bucle que toma su valor inicial en la inicializacion, interviene en la condicion y cambia en la actualizacion
Bucles Bucle con dos variables de control <?php for ($subir = 1, $bajar = 10; $subir < $bajar, $subir < 3; $subir++, $bajar--) { echo "Bajar: $bajar - Subir: $subir <BR>";?> En este caso hay dos variables para controlar el bucle Dos inicializaciones: $subir = 1, $bajar = 10 Dos condiciones: $subir < $bajar, $subir < 3 Dos actualizaciones: $subir++, $bajar--
Bucles Bucles anidados <?php for ($i = 1; $i <= 6; $i++) { echo Ficha: ; for ($j = 1; $j <= $i; $j++) { echo " $i:$j "; echo <BR> ;?>
Bucles Estructura del bucle while while (condicion) { instrucciones Funcionamiento: Mientras la condicion sea cierta, se evalúan las instrucciones Si la condicion es falsa, se termina el bucle Usualmente existe variables de control del bucle que toman su valor inicial antes del bucle, intervienen en la condicion y cambian en las instrucciones
Bucles Bucle con dos variables de control <?php $subir = 1; $bajar = 10; while ($subir < $bajar && $subir < 3) { echo "Bajar: $bajar - Subir: $subir <BR>"; $subir++; $bajar--;?>
Bucles Bucles anidados <?php $i = 1; while ($i <= 6) { echo Ficha: ; $j = 1; while ($j <= $i) { echo " $i:$j "; $j++; echo <BR> ; $i++;?>
Bucles La instrucción break permite terminar de forma brusca la ejecución de un bucle Se puede utilizar con las bucles for y while Uso de la instrucción break <?php echo Números: ; for ($i = 1; $i <= 6; $i++) { echo " $i"; if ($i == 3) { break;?>
Bucles La instrucción break admite un parámetro opcional, que determina cuantos bucles anidados hay que terminar Uso de la instrucción break <?php for ($i = 1; $i <= 6; $i++) { echo Ficha: ; for ($j = 1; $j <= $i; $j++) { echo " $i:$j "; if ($j == 3) { break 2; echo <BR> ;?>
Bucles La instrucción continue permite saltar una iteración en la ejecución de un bucle En un bucle for salta hasta la actualizacion En un bucle while salta hasta la condicion Uso de la instrucción continue <?php echo Números: ; for ($i = 1; $i <= 6; $i++) { if ($i == 3) { continue; echo " $i";?>
Bucles La instrucción continue admite un parámetro opcional, que determina cuantos niveles (bucles) hay que saltar antes de continuar la ejecución Uso de la instrucción continue <?php for ($i = 1; $i <= 6; $i++) { echo Ficha: ; for ($j = 1; $j <= $i; $j++) { if ($j == 3) { continue 2; echo " $i:$j "; echo <BR> ;?>
Funciones Una función es un fragmento de código al que suministramos unos datos y devuelve un resultado o efecto En PHP las funciones se definen con la estructura function La instrucción return sirve para devolver un valor como resultado de la ejecución de una función La definición de una función hay que realizarla antes que cualquier uso de la misma Estructura de la definición de funciones function nombre ($var1, $var2,...) { instrucciones... return valor;
Funciones Para evaluar una función basta con utilizar su nombre con tantos argumentos como variables aparezcan en la definición de la función Al evaluar una función, se ejecutan todas las instrucciones del cuerpo de su definición, donde las variables de la definición son sustituidas por los argumentos de la llamada Evaluación de funciones nombre (arg1, arg2,...);
Funciones Las variables que se utilizan en la definición (cabecera y cuerpo) de una función son locales a la definición de la misma Si queremos hacer referencia a una variable externa a una función debemos utilizar la instrucción global Variables locales y globales <?php $a = 1; $b = 2; $c = 3; function Sum($c) { $a = 0; global $b; $b = $a + $b + $c; Sum(4);?> Después de la evaluación, $a mantiene su valor original y $b toma el valor 6