Académique Documents
Professionnel Documents
Culture Documents
Curso bsico
Eduardo Flores
edflores@uan.edu.mx
PHP Contenido
1. Introduccin
Qu es PHP? Qu se puede hacer con PHP? Cmo obtener el cdigo fuente y binarios Instalacin y configuracin Sintaxis bsica Tipos de datos Declaracin de variables Forzado de tipos Conceptos bsicos Variables predefinidas Ambito de las variables Variables variables Variables externas a PHP Constantes definidas por PHP
1.
El lenguaje
1.
Variables
1.
Constantes
PHP Contenido
Definicin de constantes
5. 6.
Expresiones Operadores
Operadores aritmticos Operadores de asignacin Operadores bit a bit Operadores de comparacin Operador de ejecucin Operadores de incremento/decremento Operadores lgicos Precedencia de operadores Operadores de cadena if, else, elseif while do...while for foreach
5.
Estructuras de control
PHP Contenido
8.
Incluir archivos
8.
Funciones
Funciones definidas por el usuario Parmetros de las funciones Devolver valores 8. PHP y bases de datos Conceptos bsicos. Funciones de PHP para bases de datos. Base de datos de ejemplo Obteniendo registros de una base de datos. Uso de arreglos asociativos. Llamada a un mismo archivo PHP PHP y formas HTML.
PHP Contenido
Insercin con una forma HTML. Actualizacin con una forma HTML. Eliminacin con una forma HTML.
PHP 1. Introduccin
Qu es PHP? Qu se puede hacer con PHP? Cmo obtener el cdigo fuente y binarios
PHP 1. Introduccin
1.1 Qu es PHP?
PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje interpretado de alto nivel embebido en pginas HTML y ejecutado en el servidor. Funcionamiento de HTTP (Protocolo de servidores y clientes de WWW):
PHP 1. Introduccin
1.1 Qu es PHP?
PHP 1. Introduccin,
PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la informacin de formularios, generar pginas con contenidos dinmicos, o mandar y recibir cookies. PHP tiene soporte para una gran cantidad de bases de datos. Escribir un interfaz va web para una base de datos es una tarea simple con PHP. Las siguientes bases de datos estn soportadas actualmente (entre otras):
Oracle (OCI7 and OCI8) PostgreSQL Solid Sybase Sybase Unix dbm
PHP 1. Introduccin
El cdigo fuente y las distribuciones binarias para algunas plataformas (incluido Windows) se pueden encontrar en http://www.php.net/.
PHP 1. Introduccin
Para hacer una instalacin en un sistema Unix se tienen los siguientes requisitos:
Habilidades bsicas en UNIX (ser capaz de manejar el "make" y un compilador de C) Un compilador ANSI de C Un servidor web (puede ser Apache)
PHP 1. Introduccin
1. gunzip apache_1.3.x.tar.gz 2. tar xvf apache_1.3.x.tar 3. gunzip php-3.0.x.tar.gz 4. tar xvf php-3.0.x.tar 5. cd apache_1.3.x 6. ./configure --prefix=/www 7. cd ../php-3.0.x 8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars 9. make 10. make install 11. cd ../apache_1.3.x 12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a 13. make 14. make install En lugar de este paso quizs prefiera simplemente copiar el binario httpd encima del binario existente. Si lo hace, asegrese antes de cerrar su servidor. 15. cd ../php-3.0.x 16. cp php3.ini-dist /usr/local/lib/php3.ini Puede editar el archivo /usr/local/lib/php3.ini para ajustar opciones del PHP. Si prefiere tenerlo en otro sitio, utilice --with-config-file-path=/path en el paso 8. 17. Edite su archivo httpd.conf o srm.conf y aada: AddType application/x-httpd-php3 .php3 Puede elegir la extensin que desee aqu. .php3 es simplemente nuestra sugerencia. 18. Utilice su mtodo habitual para iniciar el servidor Apache (debe detener y reiniciar el servidor, no solamente hacerlo recargarse usando una seal HUP o USR1.)
PHP 1. Introduccin
Para hacer una instalacin en un sistema Windows NT/9x se necesita alguno de los siguientes servidores de Web: IIS (Microsoft Internet Information Server) PWS (Microsoft Personal Web Server) Apache
PHP 1. Introduccin
Extraiga el archivo de distribucin a un directorio de su eleccin. "C:\PHP3\" es un buen comienzo. Copie el archivo 'php3.ini-dist' a su directorio '%WINDOWS%' y renmbrelo a 'php3.ini'. Su directorio '%WINDOWS%' es tpicamente: c:\windows para Windows 95/98 c:\winnt o c:\winnt40 para servidores NT Edite su archivo 'php3.ini': Necesita cambiar la opcin 'extension_dir' para que apunte a su phpinstall-dir, o a donde quiera que haya puesto sus archivos 'php3_*.dll'. P.ej.: c:\php3
PHP 1. Introduccin
Elija qu mdulos deseara cargar cuando comience el PHP. Puede descomentar las lneas: 'extension=php3_*.dll' para cargar estos mdulos. Algunos mdulos requieren que tenga instaladas en sus sistema libreras adicionales para que el mdulo funcione correctamente. En el PWS y el IIS puede fijar el browscap.ini para que apunte a: 'c:\windows\system\inetsrv\browscap.ini' bajo Windows 95/98 y a 'c:\winnt\system32\inetsrv\browscap.ini' bajo NT Server. Elija el botn "fuente" para verlo en accin. Las DLL para las extensiones del PHP van precedidas de 'php3_'. Esto evita confusiones entre las extensiones del PHP y sus libreras de soporte.
PHP 1. Introduccin
Debe editar sus archivos srm.conf o httpd.conf para configurar el Apache para que trabaje con el ejecutable CGI del PHP. Aunque puede haber algunas variaciones al configurar PHP bajo Apache, esta es lo suficientemente simple para ser usada por el novato. Agregar a los archivos correspondientes (en las ltimas versiones de Apache slo en httpd.conf): ScriptAlias /php3/ "c:/ruta-al-dir-del-php/" AddType application/x-httpd-php3 .php3 AddType application/x-httpd-php3 .phtml Action application/x-httpd-php3 "/php3/php.exe"
PHP 2. El lenguaje
PHP 2. El lenguaje
2.1 Sintaxis bsica
4.
La primera forma slo est disponible si se han habilitado las etiquetas cortas con la funcin short_tags(), con la opcin de configuracin short_open_tag en el archivo de configuracin de PHP, o compilando PHP con la opcin --enableshort-tags en configure. La cuarta manera est disponible slo si se han habilitado las etiquetas tipo ASP
PHP 2. El lenguaje
2.1 Sintaxis bsica
Separacin de instrucciones: Las instrucciones se separan igual que en C o perl, con un punto y coma al final. La etiqueta de cierre (?>) tambin implica el fin de la sentencia, as lo siguiente es equivalente:
PHP 2. El lenguaje
2.1 Sintaxis bsica
Comentarios PHP soporta comentarios tipo C, C++ y shell de Unix. Por ejemplo:
<?php echo "Esto es una prueba"; // Comentario tipo c+ + para una lnea /* Esto es un comentario multilnea otra lnea ms de comentario*/ echo "Esto es an otra prueba"; echo "Una Prueba Final"; # Este es un comentario tipo shell ?>
PHP 2. El lenguaje
2.2 Tipos de datos
PHP soporta los siguientes tipos de datos: Enteros Nmeros en punto flotante Cadenas Arrays Objetos
PHP 2. El lenguaje
2.2 Tipos de datos
Enteros Los enteros se puede especificar usando una de las siguientes sintaxis:
$a = 1234; # nmero en decimal $a = -123; # un nmero negativo $a = 0123; # nmero octal (equivalente al 83 decimal) $a = 0x12; # nmero hexadecimal (equivalente al 18 decimal)
PHP 2. El lenguaje
2.2 Tipos de datos
Nmeros en punto flotante Los nmeros en punto flotante ("double") se pueden especificar utilizando cualquiera de las siguientes sintaxis:
$a = 1.234; $a = 1.2e3;
PHP 2. El lenguaje
2.2 Tipos de datos
Cadenas Las cadenas de caracteres se pueden especificar usando uno de dos tipos de delimitadores. Si la cadena est encerrada entre dobles comillas ("), las variables que estn dentro de la cadena sern expandidas (sujetas a ciertas limitaciones de interpretacin). Como en C y en Perl, el carcter de barra invertida ("\") se puede usar para especificar caracteres especiales:
PHP 2. El lenguaje
2.2 Tipos de datos
\n \r \t \\ \$ \ \[0-7]{1,3}
\x[0-9A-Fa-f]{1,2} La secuencia de caracteres que coincida con la expresin regular es un carcter en notacin hexadecimal
PHP 2. El lenguaje
2.2 Tipos de datos
Cadenas Otra forma de delimitar una cadena de caracteres usa el carcter de comilla simple ('). En este caso los nicos caracteres de escape que sern comprendidos son \\ y \'. Esto es por convenio, as que se pueden tener comillas simples y barras invertidas en una cadena entre comillas simples. Las variables no se expandirn dentro de una cadena entre comillas simples. Otra forma de delimitar cadenas es usando la sintaxis de documento incrustado (">>>"). Se debe proporcionar un identificador despus de >>>, despus la cadena, y despus el mismo identificador para cerrar el entrecomillado.
PHP 2. El lenguaje
2.2 Tipos de datos
Cadenas, ejemplos
/* Otra forma de aadir, incluye un carcter de nueva lnea protegido. */ $str .= " Y un carcter de nueva lnea al final.\n"; ?>
PHP 2. El lenguaje
2.2 Tipos de datos
Cadenas, ejemplos
um = 9;
tr = "<p>Nmero: $num</p>";
um = 9;
tr = '<p>Nmero: $num</p>';
PHP 2. El lenguaje
2.2 Tipos de datos
Cadenas, ejemplos
?php */
first = $str[0];
last = $str[strlen($str)-1];
>
PHP 2. El lenguaje
2.2 Tipos de datos
Cadenas, ejemplos
$str = >>>EOD
Ejemplo de cadena
EOD;
PHP 2. El lenguaje
2.2 Tipos de datos
Arrays Los arrays actualmente actan tanto como tablas hash (arrays asociativos) o como arrays indexados (vectores).
Los arrays se pueden ordenar usando las funciones asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), y uksort() dependiendo del tipo de ordenacin que se quiera.
PHP 2. El lenguaje
2.2 Tipos de datos
Arrays, multidimensionales Los arrays multidimensionales son bastante simples. Para cada dimensin del array, se puede aadir otro valor [clave] al final:
$a[1] $a["foo"]
= $f; = $f;
$a[1][0]
= $f;
# bidimensional
$a["foo"][2] = $f; # (se pueden mezclar ndices numricos y asociativos) $a[3]["bar"] = $f; # (se pueden mezclar ndices numricos y asociativos) $a["foo"][4]["bar"][0] = $f; # tetradimensional!
PHP 2. El lenguaje
2.2 Tipos de datos
Objetos Para inicializar un objeto, se usa la sentencia new para instanciar el objeto a una variable.
class foo { function do_foo () { echo "Doing foo."; } } class suma { function do_suma( $x , $y ) { $sumar = $x + $y; echo "$sumar"; $bar = new foo; $bar->do_foo(); } $s = new suma; $s -> do_suma($x = 2,$y =4); }
PHP 2. El lenguaje
PHP no requiere (o soporta) la declaracin explcita del tipo en la declaracin de variables. El tipo de una variable se determina por el contexto en el que se usa esa variable.
// $foo es una cadena (ASCII 48) // $foo es la cadena "1" (ASCII 49) // $foo ahora es un entero (2) // $foo ahora es un doble
$foo = 5 + "10 Cerditos Pequeitos"; // $foo es entero (15) $foo = 5 + "10 Cerditos"; (15) // $foo es entero
PHP 2. El lenguaje
2.4 Forzado de tipos
El forzado de tipos en PHP funciona como en C: el nombre del tipo deseado se escribe entre parntesis antes de la variable a la que se pretende forzar.
$foo = 10; // $foo es un entero // $bar es un doble
PHP 2. El lenguaje
2.4 Forzado de tipos
(int), (integer) - fuerza a entero (integer) (int), (integer) - fuerza a entero (integer) (real), (double), (float) - fuerza a doble (double) (string) - fuerza a cadena (string) (array) - fuerza a array (array) (object) - fuerza a objeto (object)
$foo = (int) $bar; $foo = ( int ) $bar; $var = 'ciao'; $arr = (array) $var; echo $arr[0]; // produce la salida 'ciao'
PHP 3. Variables
Conceptos bsicos Variables predefinidas Ambito de las variables Variables variables Variables externas a PHP
PHP 3. Variables
En PHP las variables se representan como un signo de dlar seguido por el nombre de la variable. En PHP las variables se representan como un signo de dlar seguido por el nombre de la variable. El nombre de la variable es sensible a minsculas y maysculas.
$var = "Bob"; $Var = "Joe"; echo "$var, $Var"; // produce la salida "Bob, Joe
Se puede utilizar los siguientes caracteres: A-B, a-b, 0-9, _. La longitud del nombre de una variable no tiene lmite. PHP ofrece otra forma de asignar valores a las variables: asignar por referencia (como
PHP 3. Variables
PHP proporciona una gran cantidad de variables predefinidas a cualquier script que se ejecute. Algunas de estas variables no pueden estar completamente documentadas ya que dependen de sobre qu servidor se est ejecutando. Para una lista de variables predefinidas (y muchas ms informacin til), por favor, vea (y use) phpinfo(). Algunas de estas variables (por ejemplo, con el servidor Apache) son:
SERVER_NAME REQUEST_METHOD QUERY_STRING DOCUMENT_ROOT HTTP_USER_AGENT HTTP_REFERER REMOTE_ADDR SCRIPT_NAME REQUEST_URI REMOTE_USER
PHP 3. Variables
argv. Array de argumentos pasados al script argc. Nmero de parmetros de la lnea de comandos pasados al script PHP_SELF. El nombre del archivo que contiene el script que se esta ejecutando.
PHP 3. Variables
El mbito de una variable es el contexto dentro del que la variable est definida. La mayor parte de las variables PHP slo tienen un mbito simple. Este mbito simple tambin abarca los ficheros incluidos y los requeridos. Cualquier variables que se use dentro de una funcin est, por defecto, limitada al mbito local de la funcin. Por ejemplo:
$a = 1; /* mbito global */ function Test() { echo $a; /* referencia a una variable de mbito local */ } Test();
PHP 3. Variables
En PHP, las variables globales deben ser declaradas globales dentro de la funcin si van a ser utilizadas dentro de dicha funcin. Veamos un ejemplo:
$a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum (); echo $b; // produce 3 como salida
PHP 3. Variables
Las variables declaradas como static, permiten que una variable local en una funcin, conserver su valor en llamadas sucecivas:
function Test() { static $a = 0; echo $a; $a++; }
PHP 3. Variables
Las variables variables son nombres de variables que se pueden establecer y usar dinmicamente.
$a = "hello"; $$a = "world"; // se crea una variable con el nombre hello echo "$a\n" // produce hello como salida
PHP 3. Variables
Cuando se enva un formulario a un script PHP, las variables de dicho formulario pasan a estar automticamente disponibles en el script gracias a PHP. Por ejemplo, consideremos el siguiente formulario:
<form action="foo.php3" method="post"> Name: <input type="text" name="nombre"><br> <input type="submit"> </form>
Cuando es enviado, PHP crear la variable $nombre, que contendr lo que se introdujo en el campo nombre: del formulario.
PHP 3. Variables
PHP tambin maneja arrays en el contexto de variables de formularios, pero slo en una dimensin:
<form action="array.php" method="post"> Name: <input type="text" name="personal[name]"><br> Email: <input type="text" name="personal[email]"><br> Beer: <br> <select multiple name="beer[]"> <option value="warthog">Warthog <option value="guinness">Guinness <option value="stuttgarter">Stuttgarter Schwabenbru </select> <input type="submit"> </form>
PHP 4. Constantes
PHP 4. Constantes
PHP define varias constantes y proporciona un mecanismo para definir ms en tiempo de ejecucin. Algunas constantes definidas por PHP son:
__FILE__. Nombre del archivo de comandos que est siendo interpretado actualmente. __LINE__. Nmero de lnea dentro del archivo que est siendo interpretado en la actualidad. PHP_VERSION. cadena que representa la versin del analizador de PHP en uso . PHP_OS. Nombre del sistema operativo en el cul se ejecuta el analizador PHP. TRUE. Valor verdadero FALSE. Valor falso.
PHP 4. Constantes
PHP 5. Expresiones
Las expresiones son la piedra angular de PHP. En PHP, casi cualquier cosa que escribes es una expresin La forma ms simple y ajustada de definir una expresin es "cualquier cosa que tiene un valor". Las formas ms bsicas de expresiones son las constantes y las variables. Cuando se escribe "$a = 5", se est asignando '5' a $a. '5', obviamente, tiene el valor 5 o, en otras palabras '5' es una expresin con el valor 5 (en este caso, '5' es una constante entera). En el ejemplo anterior, se esperar que el valor de $a sea 5 tambin, de manera que si se escribe $b = $a, se espera que se comporte igual que si se escribiese $b = 5.
PHP 5. Expresiones
Las funciones son un ejemplo algo ms complejo de expresiones. Por ejemplo, considera la siguiente funcin:
function foo () { return 5; } $c = foo() // es equivalente a $c = 5
Un tipo muy comn de expresiones son las expresiones de comparacin. Estas expresiones se evalan a 0 o 1, significando FALSO (FALSE) o CIERTO (TRUE).
PHP 5. Expresiones
Ms ejemplos de expresiones:
/* asignar el valor cinco a las variables
$c = $a++; /* postincremento, asignar el valor original de $a (5) a $c */ $e = $d = ++$b; /* preincremento, asignar el valor incrementado de $b (6) a $d y a $e */ /* en este punto, tanto $d como $e son iguales a 6 */ $f = double($d++); /* asignar el doble del valor de $d antes del incremento, 2*6 = 12 a $f */ $g = double(++$e); despus /* asignar el doble del valor de $e del incremento, 2*7 = 14 a $g */ $h = $g += 10; /* primero, $g es incrementado en 10 y termina valiendo 24. despus el valor de la asignacin (24) se asigna a $h, y $h tambin acaba valiendo 24. */
PHP 6. Operadores
Operadores aritmticos Operadores de asignacin Operadores bit a bit Operadores de comparacin Operador de ejecucin Operadores de incremento/decremento Operadores lgicos Precedencia de operadores Operadores de cadena
PHP 6. Operadores
Ejemplo
$a + $b $a - $b $a * $b $a / $b $a % $b
Nombre
Adicin Substraccin
Resultado
Suma de $a y $b Difrerencia entre $a y $b
PHP 6. Operadores
El operador bsico de asignacin es "=". Significa que el operando de la izquierda toma el valor de la expresin a la derecha, (esto es, "toma el valor de"). El valor de una expresin de asignacin es el propio valor asignado. Esto es, el valor de "$a = 3" es 3. Esto permite hacer cosas curiosas como:
$a = ($b = 4) + 5; // ahora $a es igual a 9, y $b vale 4.
PHP 6. Operadores
Adems del operador bsico de asignacin, existen los "operadores combinados" para todas las operaciones aritmticas y de cadenas que sean binarias. Este operador combinado te permite, de una sola vez, usar una variable en una expresin y luego establecer el valor de esa variable al resultado de la expresin:
$a = 3; $a += 5; // establece $a a 8, como: $a = $a + 5; $b = "Hola "; $b .= "Ah!"; // $b igual a "Hola Ah!", igual que $b = $b . "Ah!";
PHP 6. Operadores
6.3 Operadores bit a bit
Ejemplo
$a & $b $a | $b $a ^ $b
Los operadores bit a bit te permiten activar o desactivar bits individuales de un entero:
Nombre Resultado
Y O XOR Se activan los bits que estn activos tanto en $a como $b. Se activan los bits que estn activos en $a o que lo estn en $b. Se activan los bits que estn activos en $a o en $b pero no en ambos a la vez. Se activan los bits que no estn activos en $a.
~$a $a << $b
NOT
Desp. a la izq. Desplaza los bits de $a, $b posiciones hacia la izquierda (multiplica por dos el valor de $a). Desp. a la der. Desplaza los bits de $a, $b posiciones hacia la derecha (divide entre dos el valor de $a).
$a >> $b
PHP 6. Operadores
Los operadores de comparacin, como su nombre indica, permiten comparar dos valores:
Nombre
Igualdad
Ejemplo
$a == $b
Resultado
Cierto si $a es igual a $b. Cierto si $a es igual a $b y si son del mismo tipo (slo PHP4).
Desigualdad Cierto si $a no es igual a $b. Menor que Mayor que Menor o igual que Mayor o igual que Cierto si $a es estrictamente menor que $b. Cierto si $a es estrictamente mayor que $b. Cierto si $a es menor o igual que $b. Cierto si $a es mayor o igual que $b.
PHP 6. Operadores
PHP soporta un operador de ejecucin: el apstrofe invertido (``). No son apostrofes normales. PHP intentar ejecutar la instruccin contenida dentro de los apstrofes invertidos como si fuera un comando del shell. Su salida es devuelta como el valor de esta expresin:
$output = `ls -al`; echo "<pre>$output</pre>";
PHP 6. Operadores
Ejemplo
++$a $a++ --$a $a--
Efecto
Incrementa $a en uno y despus devuelve $a.
Postincremento Devuelve $a y despus incrementa $a en uno. Predecremento Decrementa $a en uno y despus devuelve $a Postdecremento Devuelve $a y despus decrementa $a en uno.
PHP 6. Operadores
6.7 Operadores lgicos
Ejemplo Nombre
$a and $b Y $a or $b $a xor $b !$a $a && $b $a || $b O XOR NOT Y O
PHP 6. Operadores
6.8 Precedencia de operadores La precedencia de operadores especifica cmo se agrupan las expresiones. La siguiente tabla lista la precedencia de operadores, indicndose primero los de menor precedencia:
Operadores Asociatividad Operadores
^ & Izquierda Izquierda Izquierda or Izquierda xor Izquierda and Derecha print
Asociatividad
Izquierda ,
No asociativo == != === No asociativo < <= > >= Izquierda Izquierda Derecha +-. */% ! ~ ++ -- (int) (double) (string) (array) (object) @ [
Derecha
No asociativo new
PHP 6. Operadores
$a = "Hola ";
Hay dos operadores de cadenas. El primero es el operador de concatenacin ('.'). El segundo es el operador de concatenacin y asignacin ('.='):
if, else, elseif while do...while for foreach break continue switch
if Permite la ejecucin condicional de fragmentos de cdigo PHP caracteriza una estructura if que es similar a la de C:
if (expr) sentencia
else extiende una sentencia if para ejecutar una sentencia en caso de que la expresin en la sentencia if se evale como FALSE.
if ($a > $b) { print "a es mayor que b"; } else { print "a NO es mayor que b"; }
elseif, como su nombre sugiere, es una combinacin de if y else. extiende una sentencia if para ejecutar una sentencia diferente en caso de que la expresin if original se evala como FALSE.
if ($a > $b) { print "a es mayor que b"; } elseif ($a == $b) { print "a es igual que b"; } else { print "a es mayor que b"; }
Los bucles while son los tipos de bucle ms simples en PHP. Se comportan como su contrapartida en C. La forma bsica de una sentencia while es:
$i = 1; while ($i <= 10) { print $i++; /* el valor impreso sera $i antes del incremento (post-incremento) */ }
Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteracin en vez de al principio. La principal diferencia frente a los bucles regulares while es que se garantiza la ejecucin de la primera iteracin de un bucle do..while.
$i = 0; do { print $i; } while ($i>0);
La primera expresin (expr1) se evala (ejecuta) incondicionalmente una vez al principio del bucle. Al comienzo de cada iteracin, se evala expr2 . Si se evala como TRUE, el bucle contina y las sentencias anidadas se ejecutan. Si se evala como FALSE, la ejecucin del bucle finaliza. Al final de cada iteracin, se evala (ejecuta) expr3. Cada una de las expresiones puede estar vaca. Que expr2 est vaca significa que el bucle debera correr indefinidamente.
PHP4 (PHP3 no) incluye una construccin foreach, tal como perl y algunos otros lenguajes. Da un modo fcil de iterar sobre arrays Hay dos sintaxis; la segunda es una extensin menor.
foreach(expresion_array as $value) sentencia foreach(expresion_array as $key => $value) sentencia
La primera forma recorre el array dado por expresion_array. En cada iteracin, el valor del elemento actual se asigna a $value y el puntero interno del array se avanza en una unidad La segunda manera hace lo mismo, salvo que la clave del elemento actual ser asignada a la variable $key en cada iteracin.
Ejemplos:
/* foreach ejemplo 1: slo valor*/ $a = array(1, 2, 3, 17); foreach($a as $v) { print "Valor actual de \$a: $v.\n"; } /* foreach ejemplo 2: valor (con clave impresa para ilustrar) */ $a = array(1, 2, 3, 17); $i = 0; /* slo para propsitos demostrativos */ foreach($a as $v) { print "\$a[$i] => $v.\n"; }
break escapa de la estructuras de control iterante (bucle) actuales for, while, o switch. break acepta un parmetro opcional, el cual determina cuantas estructuras de control hay que escapar.
$arr = array ('one', 'two', 'three', 'four', 'stop', 'five'); while (list (, $val) = each ($arr)) { if ($val == 'stop') { break; 1;' here. */ } echo "$val<br>\n"; } /* You could also write 'break
continue se usa dentro de la estructura del bucle para saltar el resto de la iteracin actual del bucle y continuar la ejecucin al comienzo de la siguiente iteracin. continue acepta un parmetro opcional, el cual determina cuantos niveles (bucles) hay que saltar antes de continuar con la ejecucin.
while (list($key,$value) = each($arr)) { if ($key % 2) { // salta los miembros impares continue; } do_something_odd ($value); }
La sentencia switch es similar a una serie de sentencias IF en la misma expresin. Los siguientes dos ejemplos son dos modos distintos de escribir la misma cosa, uno usa una serie de sentencias if, y el otro usa la sentencia switch:
if ($i == 0) { print "i es igual a 0"; } if ($i == 1) { print "i es igual a 1"; } switch ($i) { case 0: print "i es igual a 0"; break; case 1: print "i es igual a 1"; break; }
require() include()
La sentencia require() se sustituye a s misma con el archivo especificado, tal y como funciona la directiva #include de C. El intrprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al final. A diferencia de include(), require() siempre leer el archivo referenciado, incluso si la lnea en que est no se ejecuta nunca.
require( 'header.inc' );
La sentencia include() incluye y evala el archivo especificado. include() difiere de require() en que la sentencia include se reevala cada vez que se encuentra (y slo cuando est siendo ejecutada), mientras que la sentencia require() se reemplaza por el archivo referenciado cuando se encuentra por primera vez. Se puede usar una sentencia include() dentro de una estructura de bucle para incluir un nmero de archivos diferentes.
$archivos = array ('primero.inc', 'segundo.inc', 'tercero.inc'); for ($i = 0; $i < count($archivos); $i++) { include $archivos[$i]; }
PHP 9. Funciones
PHP 9. Funciones
Cualquier instruccin vlida de PHP puede aparecer en el cuerpo de la funcin. En PHP3, las funciones deben definirse antes de que se haga referencia a ellas. En PHP4 no existe tal requerimiento. PHP no soporta la sobrecarga de funciones. PHP3 no soporta un nmero variable de parmetros, aunque s soporta parmetros por defecto.
PHP 9. Funciones
La informacin puede suministrarse a las funciones mediante la lista de parmetros, una lista de variables y/o constantes separadas por comas. PHP soporta pasar parmetros por valor (el comportamiento por defecto), por referencia, y parmetros por defecto. Ejemplo de paso por referencia:
function add_some_extra(&$string) { $string .= ' y algo ms.'; } $str = 'Esto es una cadena, '; add_some_extra($str); echo $str; // Saca 'Esto es una cadena, y algo ms.'
PHP 9. Funciones
PHP 9. Funciones
9.3 Devolver valores
Los valores se retornan usando la instruccin opcional return. Puede devolverse cualquier tipo de valor, incluyendo listas y objetos.
function square ($num) { return $num * $num; } echo square (4); // saca '16'.
No puedes devolver mltiples valores desde una funcin, pero un efecto similar se puede conseguir devolviendo una lista.
function small_numbers() { return array (0, 1, 2); } list ($zero, $one, $two) = small_numbers();
Conceptos bsicos. Funciones de PHP para bases de datos. Formas HTML y los mtodos GET y POST. Base de datos de ejemplo Obteniendo registros de una base de datos. Uso de arreglos asociativos. Llamada a un mismo archivo PHP PHP y formas HTML. Insercin con una forma HTML. Actualizacin con una forma HTML. Eliminacin con una forma HTML.
Una base de datos es una coleccin de datos organizada de tal forma que su contenido sea fcilmente accesado, administrado y actualizado. Se componen de archivos (tablas) que son una coleccin de registros compuestos por campos que pueden contener datos de distinto tipo
Base de datos
Tabla (archivo n)
...
PHP tiene soporte para una gran cantidad de bases de datos. Escribir un interfaz va web para una base de datos es una tarea simple con PHP.
3. El servidor localiza el document o 4. El servidor procesa el contenido de PHP en el documento
PHP cuenta con funciones para el acceso y manipulacin de base de datos. Las funciones pueden: Establecer una sesin con el servidor de base de datos (connect). Seleccionar una base de datos del servidor (select db). Ejecutar una consulta sobre las tablas de una base de datos (query). Manipular la informacin devuelta por la consulta. La utilizacin de estas funciones y las caractersticas de PHP (estructuras de control, tipos de datos, funciones definidas por el usuario, etc.), hacen de PHP una herramienta que facilita la creacin de interfaces para bases de datos a travs de pginas Web.
Las formas en HTML cuentan con dos mtodos para enviar datos al servidor: GET y POST.
El Mtodo GET
El mtodo GET produce una cadena de consulta que se une a la accin del URL al pulsar el botn submit. Una cadena tpica del mtodo GET se vera as:
GET /cgi-bin/process-form.php?campo1=valor1&campo2=valor2 HTTP/1.1
La cadena puede tener un mximo de 256. Es til cuando se envan pocos datos. La cadena es recibida como si fuera un parmetro del script.
El Mtodo POST Es conceptualmente similar a GET. El mtodo POST es formateado y enviado al servidor como un flujo de datos de longitud variable. El flujo de datos lo recibe el programa como si fuera tecleado en el script (a travs de su entrada estndar) por lo que no forma parte del URL.
Crear una base de datos llamada empleados, con una tabla llamada directorio que tenga las siguientes caractersticas:
empleados
directorio
Campo
id nombre puesto
Tipo
smalint(5) char(50) char(30)
Atributos
UNSIGNED
Null
No No No No
Extra
auto_increment
direccon char(50)
Dir.:<INPUT TYPE=TEXT NAME=direccion VALUE="<?php echo $reg[direccion]?>"><BR> <INPUT TYPE=HIDDEN NAME=id VALUE=<?php echo $reg[id]?>> <INPUT TYPE=SUBMIT NAME=submit VALUE="Actualizar"> </FORM><P> <?php } } else { $sql="UPDATE directorio SET nombre='$nombre',puesto='$puesto',"; $sql.="direccion='$direccion' WHERE id=$id"; $resultado=mysql_query($sql,$db); echo "Gracias! Informacin actualizada.\n"; } ?> </BODY></HTML>
print "Archivo original: $userfile_name<BR>\n"; print "Tamao: $userfile_size<BR>\n"; print "Tipo de archivo: $userfile_type bytes<BR>\n"; $archivo=$base.$userfile_name; copy($userfile, $archivo); print "Archivo copiado a: $archivo<P>\n"; $image = GetImageSize($base.$userfile_name); // $image array con info echo "<IMG SRC=\"/curso/$userfile_name\" WIDTH=$image[0] HEIGHT=$image[1]>\n"; } ?> </BODY></HTML>