Descargar

Introducción al Lenguaje PHP (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

2.5.1. Variables. Declaración y Uso. NO hace falta declararlas Llevan delante el signo ‘$’. $var_1 = 123; $var_2 = ’hola’; $var_3 = $var_1 * 2;  

edu.red

$mi_variable = ’Inicializamos como texto’; $mi_variable = 3; // Entero. $mi_variable = 3.14 * $mi_variable; // Float. $mi_variable = new MiClase(); // Objeto. Variables débilmente tipadas (tipo mixed). 2.5.2. Variables. Tipado.  

 

edu.red

2.5.2. Variables. Tipado. Conversión automática. PHP realiza conversiones automáticas de tipo: $mivar = 123; echo $mivar; // Se convierte a string $mivar = ’3’; // Se convierte a entero $mivar = 2 + $mivar; // para realizar la suma

edu.red

2.5.2. Variables. Tipado. Conversión explícita. Operador cast:  

$mivar = (string)123; Cambiar el tipo de una variable:  

$mivar = 12; settype($mivar, "double");  

edu.red

2.5.3. Variables. Ámbito. En el cuerpo de un archivo, las variables son GLOBALES al archivo y archivos incluidos. En una función, son LOCALES a esa función. Dentro de una clase, sólo pueden ser accedidas a través del operador “->” sobre el nombre del objeto.

edu.red

2.5.4. Referencias. Se definen con el carácter ‘&’:  

$alias = &$variable  

(Gp:) Se puede eliminar una referencia con la función unset(): (Gp:) $a = 1; $b = &$a; unset ($a); // Pero $b sigue valiendo 1

 

edu.red

2.6. Tipos de datos. Enteros, en decimal, octal o hexadecimal. $MiVar = 123;

Punto flotante. $MiVar = 1.3e4;

Arrays. $MiVar[2] = 123;

Strings. $MiVar = “Cadena de texton”;

Objetos: $MiVar = new MiClase();

edu.red

2.6.3. Tipos de datos. Arrays.  

$MiArray[0] = 1;

$MiArray[1] = “hola!!”;

$MiArray[] = 3;

echo $MiArray[2]; // 3

edu.red

2.6.3. Tipos de datos. Arrays (2). Funcionan como vectores o tablas hash al mismo tiempo: $MiArray[“nombre”] = “Homer”; echo $MiArray[0]; // 1 echo $MiArray[“nombre”]; // “Homer” Y pueden tener más de una dimensión: $MiOtroArray[1][“pepe”][4] = “3 dimensiones!”;  

edu.red

2.6.3. Tipos de datos. Arrays (3). También se pueden definir con el constructor array() :  

$OtroArrayMas = array( 1, “hola”, 5);

$YOtroArray = array( 0 => 1, 1 => “hola”, 2 => 5, 3 => 8, “nombre” => “Homer” );  

edu.red

2.6.4. Tipos de datos. Strings. Comillas dobles.

edu.red

2.6.4. Tipos de datos. Strings (2). Comillas simples. Si se delimitan entre comillas simples (’), las variables no se expanden y además las únicas secuencias de escape que se reconocen son “/” y “'” (barra invertida y comillas simples.)

edu.red

2.6.4. Tipos de datos. Strings (3). “Here Doc”  

$cadena = < < < FINCAD Esto es un ejemplo de cadena como “here doc”. La variable $a vale $a. Ahora vamos a finalizar la cadena: FINCAD  

Utilizando la sintaxis “here doc” de Perl. Las variables se expanden y no hace falta escapar las comillas:

edu.red

2.6.4. Tipos de datos. Strings (4). Para concatenar cadenas se utiliza el operador ‘.’ : $cad = ‘A esta cadena ‘; $cad = $cad . ‘le vamos a añadir más texto.’; Se puede acceder a cada carácter como si fuera un array: $cad2 = “Tercer carácter de $cad : ‘$cad[2]’”;  

edu.red

2.7. Constantes.  

define(“SALUDO”, “Hola, mundo!”); echo “La constante SALUDO vale ” . SALUDO;  

Las constantes se definen con la función define(): Las constantes en PHP se diferencian de las variables en que: no llevan el símbolo del dólar delante. puede accederse a ellas desde cualquier parte del código donde han sido definidas, sin restricciones de ámbito como en las variables. no pueden ser redefinidas o borradas una vez definidas. sólo pueden contener valores escalares, no vectores.

edu.red

2.8. Mayúsculas y minúsculas. Comportamiento mixto en variables y funciones:   En las variables, las mayúsculas y minúsculas IMPORTAN. En los nombres de funciones y palabras reservadas, las mayúsculas NO IMPORTAN. 

edu.red

2.9.1. Operadores aritméticos.

edu.red

2.9.2. Auto-incremento y auto-decremento.

edu.red

2.9.3. Operadores de bits.

edu.red

2.9.4. Operadores lógicos.

edu.red

2.9.5. Operadores. Asignación, igualdad e identidad.

edu.red

2.9.5. Operadores. Asignación, igualdad e identidad.Ejemplo.  

$var1 = 1; // Asignación $var2 = 1; $var3 = “1”; ($var1 == $var2) // Cierto, son iguales ($var1 == $var3) // Son iguales (tras conversión) ($var1 === $var2) // Cierto, son idénticas ($var1 === $var3) // FALSO, el tipo no coincide  

edu.red

2.9.5. Operadores. Asignación, igualdad e identidad. Error. $var1 = 1; $var2 = 2; if( $var1 = $var2 ) { echo ‘iguales’; } else { echo ‘distintas’; }

edu.red

2.9.6. Comparaciones.

edu.red

2.9.7. Operadores de cadenas. $a = 1; $b = 2;

$c = ‘El resultado de ‘ . $a . ‘ + ‘ . $b . ‘ es ‘ . $a + $b;

edu.red

2.9.8. Atajos en la asignación. += -= *= /= %= &= ^= .= >>= y < < = $var1 += 3; // $var1 = $var1 + 3; $var2 /= 2; // $var2 = $var2 / 2; $var3 >>= 1; // $var3 = $var3 >> 1;  

edu.red

2.9.9. Precedencia.

edu.red

2.10.1. Estructuras de control. if … elseif … else if (expresión) { comandos }  

if (expresión) { comandos_cierto } else { comandos_falso }  

edu.red

2.10.1. Estructuras de control. if … elseif … else (2)  

if (expresion1) { comandos1 } elseif (expresion2) { comandos2 } elseif (expresion3) { comandos3 } … else { comandosElse }  

edu.red

2.10.2. while y do … while  

while (expresión) { comandos }  

 

do { comandos } while (expresión);  

edu.red

2.10.4. for  

for (expresión1; expresión2; expresión3) { comandos }  

 

$factorial5 = 1; for ($i = 2; $i < = 5; $i++ ) { $factorial5 *= $i; }  

edu.red

2.10.4. for (2)  

for ($factorial5 = 1, $i = 2; $i < = 5; $i++ ) { $factorial5 = $factorial5 * $i; } for ($factorial5=1, $i=2; $i< =5; $factorial5*=$i, $i++);

edu.red

2.10.4. for (3). ASP.  

ASP < %FOR i=1 TO 100%> < %=MiVar%> < %NEXT%>   // PHP < ?php for ($i = 1; $i < = 100; $i++) { echo $MiVar; } ?>  

edu.red

2.10.5. foreach  

foreach (array as variable) { comandos }  

$a = array (1, 2, 3, 17); foreach ($a as $v) { print "Valor actual de $a: $v.n"; }

// Valor actual de $a: 1 // Valor actual de $a: 2 // Valor actual de $a: 3 // Valor actual de $a: 17

edu.red

2.10.5. foreach (2) foreach (array as indice => variable) { comandos }

edu.red

2.10.6. switch switch (variable) { case valor1: comandos1 case valor2: comandos2 … case valorN: comandosN default: comandosDefault }

edu.red

2.10.6. switch (2)  

switch ($i) { case 1: echo “Código del 1”;   case 2: echo “Código del 2”;   case 3: echo “Código del 3”; break;   case 4: echo “Código del 4”; }

edu.red

2.11. Cierto o falso. Valores numéricos.  

$x = 1; // $x if( $x ) // se evalúa a cierto

$x = 0; // $x definida como el entero 0 if( $x ) // se evalúa a falso

edu.red

2.11. Cierto o falso. Strings.  

$x = "hello"; // asignamos una cadena a $x if( $x ) // se evalúa a cierto

$x = ""; // cadena vacía if( $x ) // evalúa a falso

// Excepción: $x = "0"; // cero en una cadena if( $x ) // evalúa a falso // (se convierte a entero)  

edu.red

2.11. Cierto o falso. Arrays.  

$x = array(); // $x es un array vacío if( $x ) // se evalúa como falso

$x = array( "a", "b", "c" ); if( $x ) // se evalúa a cierto  

edu.red

2.11. Cierto o falso. Objetos.  

Class Yod {} // clase vacía $x = new Yod(); if( $x ) // se evalúa a falso

Class Yod { // clase no vacía var $x = 1; } $x = new Yod(); if( $x ) // se evalúa a cierto

edu.red

2.11. Cierto o falso. Constantes.   TRUE es el valor entero decimal 1.

FALSE es la cadena vacía.

edu.red

2.12. Funciones.  

function nombre ($arg_1, $arg_2, …, $arg_n) { comandos return $salida; }

edu.red

2.12. Funciones. (2) Ejemplo.  

function factorial ($valor) { if ($valor < 0) { return –1; // Error }   if ($valor == 0 ) { return 1; }   if ($valor == 1 || $valor == 2) { return $valor; }   $ret = 1; for ($i = 2; $i < = $valor; $i++) { $ret = $ret * $i; } return $ret; }   $factorial5 = factorial(5);

edu.red

2.12. Funciones. (3) Valores por defecto.  

function enlace($url = ”www.php.net”) { echo ‘< a href=”’ . $url . ‘”>Pulsa aquí< /a>’; }

edu.red

2.12.1. Funciones. Argumentos por referencia.  

function MiFuncion(&$var) { $var++; }   $a = 5; MiFuncion($a); // Aquí $a == 6

edu.red

2.12.2. Funciones. Devolución por referencia.  

function &buscar_cliente($nombre) { // … buscamos … return $registro; }   $cliente = &buscar_cliente(“Juan”); echo $cliente->dni;

edu.red

2.13. include y require La sentencia include(arch) incluye y evalúa el archivo especificado. La sentencia require(arch) se sustituye a sí misma con el archivo especificadotal y como funciona la directiva #include de C.

El intérprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al final.

edu.red

2.13. include y require Include() se re-evalúa cada vez que se encuentra (y sólo cuando está siendo ejecutada) require() siempre leerá el archivo referenciado, incluso si la línea en que está no se ejecuta nunca (condicional).

edu.red

2.13. include y require require(“cabecera.inc”);

If ($incluir == TRUE) { $archivos = array(“uno”, ”dos”, ”tres”); foreach ($archivos as $archivo) { include($archivo); } }

edu.red

2.14. Variables de Sistema $HTTP_USER_AGENT Nos informa principalmente sobre el sistema operativo y tipo y versión de navegador utilizado por el internauta. Su principal utilidad radica en que, a partir de esta información, podemos redireccionar nuestros usuarios hacia páginas optimizadas para su navegador o realizar cualquier otro tipo de acción en el contexto de un navegador determinado. $HTTP_ACCEPT_LANGUAGE Nos devuelve la o las abreviaciones de la lengua considerada como principal por el navegador. Esta lengua o lenguas principales pueden ser elegidas en el menú de opciones del navegador. Esta variable resulta también extremadamente útil para enviar al internauta a las páginas escritas en su lengua, si es que existen. $HTTP_REFERER Nos indica la URL desde la cual el internauta ha tenido acceso a la página. Muy interesante para generar botones de "Atrás" dinámicos o para crear nuestros propios sistemas de estadísticas de visitas.

edu.red

2.14. Variables de Sistema $PHP_SELF Nos devuelve una cadena con la URL del script que está siendo ejecutado. Muy interesante para crear botones para recargar la página. $HTTP_GET_VARS Se trata de un array que almacena los nombres y contenidos de las variables enviadas al script por URL o por formularios GET $HTTP_POST_VARS Se trata de un array que almacena los nombres y contenidos de las variables enviadas al script por medio de un formulario POST $HTTP_COOKIES_VARS Se trata de un array que almacena los nombres y contenidos de las cookies. Veremos qué son más adelante.

edu.red

2.14. Variables de Sistema $PHP_AUTH_USER Almacena la variable usuario cuando se efectúa la entrada a páginas de acceso restringido. Combinado con $PHP_AUTH_PW resulta ideal para controlar el acceso a las páginas internas del sitio. $PHP_AUTH_PW Almacena la variable password cuando se efectúa la entrada a páginas de acceso restringido. Combinado con $PHP_AUTH_USER resulta ideal para controlar el acceso a las páginas internas del sitio. $REMOTE_ADDR Muestra la dirección IP del visitante. $DOCUMENT_ROOT Nos devuelve el path físico en el que se encuentra alojada la página en el servidor. $PHPSESSID Guarda el identificador de sesión del usuario. Veremos más adelante en qué consisten las sesiones.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente