Sie sind auf Seite 1von 29

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

PROMOGRAMACIN EN PHP
UN POCO DE HISTORIA DE PHP
PHP es un acrnimo de Hypertext Preprocessor, aunque los orgenes del nombre se remontan al nombre Personal Home Page. PHP es un lenguaje de alto nivel que va embebido (insertado) en pginas HTML. Por otro lado, PHP es un lenguaje del lado del servidor (Server Side Scripting Languaje), lo cual significa que el usuario abre la pgina HTML y hace una peticin de interactuar, PHP, instalado en el servidor web, interpreta la peticin y enva una respuesta al usuario, lo cual hace la diferencia entre lenguajes como CSS y javascript, que son lenguajes del lado del usuario, estos ltimos son interpretados por el navegador. PHP fue concebido en 1994 por Rasmus Lerdorf, cuyo uso fue personal por esos tiempos, para controlar la cantidad de personas que consultaban su hoja de vida, es decir, su "decubrimiento" fue accidental. PHP es un lenguaje de cdigo abierto, lo cual implica que, por un lado, hay un grupo de desarrolladores que contribuyen a la elaboracin y fortalecimiento del lenguaje; y, en segundo lugar, que es un lenguaje por el que no necesitamos pagar derechos de autor (licencia) para utilizarlo.

CMO FLUYE LA MAYORA DE LA INFORMACIN A TRAVS DEL INTERNET EN UNA PGINA DINMICA?
Una pgina dinmica implica la interaccin entre el usuario y un script desarrollado en un lenguaje que permita el dinamismo, es decir, que permita la interaccin entre el usuario y un Servidor Web y un Servidor de Base de Datos (en caso de existir uno). Es decir, que el usuario haga una peticin al servidor Web, ste se comunica con el servidor de base de datos, extrae la informacin de la base de datos y presenta la informacin en la pantalla del usuario.

Un ejemplo bastante claro, es la forma en la que nos inscribimos en algn servicio de correo electrnico, en el que proporcionamos nuestro nombre, apellido, un nombre para el correo de la forma minombre@miproveedor.com y una palabra clave. Cuando, por ejemplo, al da siguiente, vamos a ver nuestros correos electrnicos, basta con escribir nuestro nombre de usuario y palabra de acceso para que accesemos a nuestra cuenta. Todo lo anterior, es gracias a una pgina dinmica, que solicita los datos al servidor Web que a su vez, extra los datos de nuestra cuenta del Servidor de Base de Datos. Lo anterior es algo similar a la siguiente imagen:

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

LO QUE PODEMOS HACER CON PHP Lo que se puede hacer con PHP es bsicamente cualquier cosa que se pueda hacer con un script CGI (Common Gateway Interface), es decir, trabajo con formularios, como su procesamiento y manejo dinmico; generar pginas con contenido dinmico (de nuevo, el contenido dinmico es el que le permite a la pgina la interaccin con el usuario); mandar o recibir cookies, etc. Una caracterstica de PHP, es la capacidad de trabajar con una gran cantidad de bases de datos, lo cual lo hace un programa verdaderamente potente, siendo que, por ejemplo, si lo "juntamos" con MySQL (un Gestor de Bases de Datos con licencia GNU), nuestros recursos salen literalmente "GRATIS".

NUESTRO PRIMER PROGRAMA PHP Al igual que cualquier script de HTML, podemos escribir el cdigo PHP en cualquier editor de texto que escojamos, claro est, si hay que hacer alguna recomendacin, la recomendacin obvia es un editor de texto que sea freeware, es decir, que sea gratis. Uno bastante bueno es ConText, el cual se puede bajar de su direccin de internet www.context.cx, en nuestro caso lo haremos con Dreamweaver Luego de haber escrito nuestro script PHP, debemos guardar el documento con la extensin .php Bien, como ya lo habrn imaginado, nuestro primer programa ser el tpico y casi infaltable "Hola Mundo!" (Casi inservible, pero muy vivificante). Necesitamos crear una pgina HTML con los comandos PHP embebidos (o insertados), dentro de las etiquetas especiales <? php ?>
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 2

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA De la siguiente forma: <html> <head> <title>Mi primer programa PHP</title> </head> <body> <?php echo "Hola Mundo!"; ?> </body> </html> Lo anterior, como ya la mayora habr imaginado, produce la siguiente salida: Como resulta obvio, los resultados de nuestros programas en PHP los veremos en nuestro navegador de Internet, siendo que los programas se insertan en pginas HTML. Por supuesto, el resultado final se hubiese logrado con menos scripts en HTML puro, pero en fin, el objetivo era simplemente mostrar la forma en la que un fragmento de cdigo en PHP debe iniciar y terminar. Nuestros programas sern ms grandes y complejos conforme vayamos avanzando y aprendiendo ms y ms.

LAS VARIABLES EN PHP Las variables son uno de los conceptos ms bsicos en la programacin. Las variables son, en pocas palabras: contenedores de datos.

Las variables son datos, a los que podemos manipular basados en un nombre: el nombre de la variable, sin necesidad de hacer referencia al tipo de dato al que la variable hace referencia. En PHP, cada variable debe comenzar con el signo de dlar ($) ms el nombre de la variable de la manera siguiente:
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 3

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

$nombre Para asignarle un valor a la variable, debemos utilizar el smbolo de asignacin, el cual es el signo igual (=). Una observacin (con carcter de advertencia), que debe hacerse, es que no es lo mismo el carcter de asignacin (=), que el smbolo comparativo de igualdad (= =). Cuando asignamos un valor, por ejemplo $nombre="Miguel", le decimos a PHP que la variable $nombre tiene el valor de cadena de caracteres "Miguel", mientras que $nombre= ="Miguel", hace la comparacin entre el valor que tiene $nombre y la cadena de caracteres "Miguel". Es decir, en buen castellano, la primera le dice a PHP quiero que la variable que se llama $nombre guarde el valor "Miguel", mientras que la segunda, por decirlo de alguna forma, le pregunta a PHP si la variable $nombre, guarda en su interior el valor "Miguel". Por favor dirijan su atencin a las comillas dobles que estn antes del valor Miguel y que tambin estn al final de dicho valor asignado a la variable $nombre. Si bien vamos a entrar en mayor detalle en un captulo futuro, tenemos que adelantar que no es lo mismo el tratamiento de nmeros, que el tratamiento de cadenas de caracteres como es el caso del ejemplo que hemos presentado. Por ejemplo, no es lo mismo "64", que 64. "64" hace referencia a la cadena de caracteres formadas por el valor ASCII de "6" y "4", mientras que 64, sin comillas dobles, hace referencia al dgito 64, con el cual ya se pueden efectuar operaciones matemticas como suma, resta multiplicacin, etc.

OTRO PROGRAMA EN PHP Bien, hagamos otro pequeo programa para mostrar lo que la asignacin de valores a variables significa, vamos a trabajar con el mismo ejemplo de la varible $nombre y el valor "Miguel": <? php $nombre = "Miguel"; echo $nombre; ?> La salida de esto en pantalla, no es ms que Miguel, sin comillas y sin "adorno" alguno.

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA OBSERVACIONES NECESARIAS En primer lugar, hay que decir que el programa es similar al de Hola Mundo!, es decir, intil pero gratificante. Con todo y eso, la intencin es mostrar algunas cosas importantes de la programacin en PHP, que se muestran de hecho desde el primer programa que desarrollamos en PHP. En primer lugar, como ya se mencion desde el principio, cada cdigo PHP insertado en HTML debe comenzar y terminar con las etiquetas especiales <? y ?>, las letras php despus de la etiqueta de apertura <? son opcionales, pero son recomendables para distinguir de manera ms sencilla en donde finaliza el script HTML y comienza el cdigo PHP, por otro lado, cada final de lnea de cdigo debe finalizar con el punto y coma (;), que es el smbolo de final de sentencia. Un final de sentencia implica que la instruccin especfica ha terminado y que la siguiente lnea contendr otra instruccin. Por otro lado, los espacios en blanco y saltos de linea en PHP son opcionales, pero contribuyen mucho a dar legibilidad a nuestro cdigo, as, el segmento de cdigo del ejemplo anterior pudimos haberlo escrito de la siguiente forma: <?php $nombre="Miguel";echo $nombre;?> El resultado final sera exactamente el mismo, pero el dilema de entender un segmento de cdigo como el anterior sera verdaderamente un dolor de cabeza, sobre todo si nuestros programas se llegan a hacer (y se harn) mucho ms grandes que el ejemplo anterior. Por ltimo, la instruccin echo de PHP tiene la funcin, como ustedes seguramente ya lo habrn adivinado, de imprimir en pantalla lo que se le ordene imprimir. Claro est, la utilidad y poder de esta instruccin se discutirn con detenimiento a lo largo de todo el curso. LAS VARIABLES EN PHP Antes que nada, hay que explicar un poco las razones del por qu hay necesidad de hacer una segunda parte para las variables. Las razones son las siguientes:

Si el concepto de variable no se entiende bien, nada en un programa PHP podr funcionar. Las consideraciones faltantes en cuanto a variables son tan importantes como las primeras. Y por ltimo, el captulo anterior se estaba haciendo demasiado grande (jeje) NOMBRES BUENOS Y NOMBRES MALOS

Hay normas sencillas en cuanto a los nombres que una variable debe tener. En primer lugar hay que decir que el tamao de las variables, es decir, de sus nombres, no tiene mayor importancia, las variables pueden tener un nombre tan grande como les apetezca, as por ejemplo, un nombre como:

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA $elreydeconstantinoplasequieredesconstantinopolizar = "Nombre largo"; Es totalmente vlido, aunque por supuesto, no es precisamente el nombre ms explicativo y prctico que podemos asignarle a una variable, sin embargo, no causa problema alguno. Pese a las facilidades que brinda PHP para el tamao de los nombres de las variables, lo ms conveniente es darles nombres explicativos, que tengan que ver con el tipo de datos que se estn guardando como: $nombre = "Miguel"; $edad = 49; $consulta_mysql = "SELECT * FROM suscribientes WHERE username = 'astroboy'"; $punto_flotante = 164845.35 $arreglo = array("Hola", "Adis", "Buenos Das", "Buenas Noches"); &$valor_por_referencia = "pasando valor por referencia a una funcin"; Claro est, cada quien utilizar los nombres que resulten ms convenientes, pero en general, como ya se dijo, la idea es nombrar cada variable para que resulte sencillo comprender qu tipo de datos estn siendo guardados dentro de ellas. Por otro lado, hay ciertas reglas que seguir a la hora de darle nombre a las variables. Dichas reglas son:

Todas las variables deben comenzar con el signo de dlar ($). Las variables NO pueden comenzar (despus del signo de dlar claro est) con nmeros, as: o $123, o $0, no son nombre vlidos Las variables NO pueden comenzar o contener en su nombre smbolos especiales como ?, &, %, #, @, !, *, (, ), <, >. Por consiguiente, las variables o $%porcentaje, o $$precio, o $#_de_telefono, no son vlidas en lo absoluto Las variables no pueden llevar tildes o ees en su contenido, es decir que: o $nio, o $pasin, no son nombre vlidos en PHP Las variables SI pueden comenzar con el guin bajo ( _ ), de manera que las variables $_nombre, $_GET, $_123 son totalmente vlidas y pueden ser utilizadas sin ningn problema en segmentos de cdigo PHP.

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA OPERACIONES MATEMTICAS CON VARIABLES Las operaciones con variables dependern del contenido que stas guarden, por consiguiente no es lo mismo utilizar el signo de ms (+) con variables que guardan nmeros, que utilizarlo con variables que guardan cadenas de caracteres. Las operaciones matemticas con variables se llevan cabo de manera horizontal y de izquierda a derecha. Para poner un ejemplo, si tenemos las variables siguientes: $numero1 = 23; $numero2 = 15; Y el fragmento de cdigo: <?php $numero1 = 23; $numero2 = 15; echo "La operaciones con los nmeros: "; echo $numero1; echo " y "; echo $numero2; echo " Son las siguientes"; echo "<br>"; echo "Suma: "; echo $numero1 + $numero2; echo "<br>"; echo "Resta: "; echo $numero1 - $numero2; echo "<br>"; echo "Multiplicacion: "; printf ("%.2f",($numero1 * $numero2)); echo "<br>"; echo "Division: "; printf ("%.2f",($numero1 / $numero2)); ?>
Para usar HTML dentro de PHP puede notarse que se hace dentro de echo:

echo "<br>";
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 7

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA OPERACIONES CON CADENAS Existe un operador de cadena que es el operador punto ( . ), este operador sirve para concatenar una cadena con otra, de la forma $variable1.$variable 2. Es decir, si tuvisemos el siguiente segmento de cdigo: <?php $primer_nombre = "Juan"; $segundo_nombre = "Antonio"; echo $primer_nombre.$segundo_nombre ?> El resultado impreso en la pantalla sera: JuanAntonio

OPERADORES EN PHP OPERADORES DE COMPARACIN Los operadores de comparacin se utilizan, como su nombre lo indica, para hacer comparaciones entre valores (la gran mayora de las ocasiones guardados en variables) que necesitan desempear un papel en nuestro cdigo. En PHP dichos operadores son: Operador Nombre Igualdad Identidad Desigualdad Menor que Mayor que Menor o igual que Mayor o igual que Ejemplo $a = = $b $a= = =$b $a != $b $a < $b $a > $b $a <= $b $a >= $b Resultado Cierto si $a es igual a $b Cierto si $a es igual a $b y si adems son del mismo tipo (slo PHP4 o mayor) Cierto si $a no es igual a $b Cierto si $a es estrictamente menor que el de $b Cierto si $a es estrictamente mayor que $b Cierto si $a es menor o igual que $b Cierto si $a mayor o igual que $b
8

== === != < > <= >=

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA OPERADORES DE INCREMENTO Y DECREMENTO Los operadores de decremento o incremento son de gran utilidad en la programacin, sobre todo porque ahorran tiempo, esfuerzo y cdigo. Dichos operadores incrementan o decrementan en uno el valor de la variable a la que se le est aplicando dicho decremento o incremento. Claro est, la utilidad la veremos con un poco ms de obviedad a la hora de ver los bucles, en los que de hecho, los operadores de incremento o decremento, hacen su debut triunfal y decididamente impresionante. En PHP, los operadores de Incremento y Decremento son los siguientes: OPERADOR NOMBRE EFECTO $a++ Postincremento Devuelve el valor de $a y luego lo incrementa en uno ++$a $b---$b <?php $a=20; $b=20; Preincremento Incrementa en uno $a y luego devuelve el valor de $a ya incrementado Decrementa en uno $b y luego devuelve el valor de $b ya decrementado

Postdecremento Devuelve el valor de $b y luego lo decrementa en uno Predecremento

echo "el valor de a es $a y el de b es $b"; echo"<br>"; echo"<br>"; echo "ahora vamos a incrementar b en 1"; echo"<br>"; $b++; echo"<br>"; echo "el valor de a es $a y el de b es $b";

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

echo"<br>";echo"<br>"; echo ($a > $b) ? "a es mayor que b" : "b es mayor que a"; echo "<br>"; ?> OPERADORES LGICOS Los operadores lgicos son de extrema utilidad a la hora de decidir si un valor y otro o un valor u otro, cumplen con ciertas condiciones. De nuevo, la utilidad de estos operadores los veremos cuando veamos las estructuras de control. En PHP, los operadores lgicos son los siguientes: Ejemplo $a and $b $a or $b !$a $a&&$b $a||$b Nombre Resultado Y Cierto slo si $a y $b son ciertos O Cierto si $a $b ambos son ciertos

$a xor $b O exclusiva Cierto si $a $b son ciertos, pero no si ambos son ciertos a la vez Negacin Cierto si $a no es cierto Y O Cierto slo si $a y $b son ciertos Cierto si $a $b ambos son ciertos

Siendo que lo ms seguro es que se estn preguntando cul es la diferencia entre and y && o entre or y ||. La respuesta es sencilla, los smbolos && y || son abreviaciones o, ms an, son herencia del lenguaje del cual deriva PHP, es decir C/C++. Dado lo anterior, para todos aquellos que ya tengan experiencia en la programacin con C/C++, esta notacin les resultar muy familiar.

OPERADOR TERNARIO El operador ternario?:, funciona de la forma (exp1) ? (exp2) : (exp3); Lo anterior significa que la expresin tomar el valor de exp2 si exp1 se vala como cierto, y el valor de exp3 si el valor de exp1 resulta falso. Un ejemplo sera: <?php $nombre = "Roberto";
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 10

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA echo ($nombre == "Roberto") ? "Hola Roberto" : "No te conozco"; ?> El cdigo anterior nos da como salida en la pantalla lo siguiente:

Si la variable $nombre hubiese tenido otro valor diferente a Roberto, entonces el resultado en pantalla hubiese sido No te conozco

PRECEDENCIA DE LOS OPERADORES La precedencia de operadores especifica que operaciones han de efectuarse primero en caso de existir ms de una operacin en un segmento de cdigo, por ejemplo 1 + 2 * 3 sera igual a 7 y no igual a 9, ya que el operador de multiplicacin (*) tiene mayor precedencia que el de suma (+).

INVESTIGAR ESTE TEMA

ESTRUCTURAS DE CONTROL EN PHP Como ya se explic con anterioridad, cada archivo de comandos PHP se compone de una serie de sentencias. La sentencia puede ser una asignacin, una llamada a una funcin (calma, las funciones vienen en camino en una entrega posterior), una sentencia condicional, etc. Por favor recuerden que cada sentencia termina con el punto y coma (;), lo que significa que si dicho smbolo no se escribe al final de cada sentencia, PHP har de cuenta que la sentencia no ha terminado hasta que un punto y coma sea encontrado. Los resultados de omitir un punto y coma van desde los ms leves e insignificantes, hasta los ms catastrficos, desesperantes y estresantes (enfermedad de moda en nuestros tiempos, adems de casi inevitable), que se puedan imaginar, as que por favor, no olviden de finalizar cada sentencia con un punto y coma. Por otro lado, tambin es necesario mencionar que las sentencias pueden ser agrupadas en grupos de sentencias, que estarn encerradas dentro de llaves { }. Por consiguiente, un grupo de sentencias encerradas en
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 11

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA llaves, son en realidad, una sola sentencia. En esta entrega, veremos los diferentes tipos de sentencias que puede haber en un programa PHP:

IF
"Si me gustan los chocolates, me los como" Una de las estructuras de control ms bsicas, y sin embargo una de las ms importantes, es la estructura if. Dicha estructura evala el valor de una expresin y dependiendo de si la evaluacin resulta verdadera o falsa, la sentencia a continuacin de if se ejecutar o se ignorar. La sintaxis es la siguiente: if(expr1) sentencia As, si tenemos el siguiente fragmento de cdigo: <?php $a = 1; $b = 3; if($a < $b) echo "$a es menor que $b"; ?> El resultado en pantalla sera el siguiente:

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

12

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA Dado que 1 (valor de $a) es decididamente menor que 3 (el valor de $b), la sentencia echo "$a es menor que $b" se imprime en la pantalla de nuestro navegador de Internet. Si el caso hubiese sido que el valor de $a hubiese sido, por ejemplo 5, el navegador simplemente nos hubiese mostrado una pantalla vaca. Por favor observen que al final de la sentencia que contiene el IF, NO hay un punto y coma. Por favor tengan en cuenta que si ponen un punto y coma al final de la lnea de cdigo que contiene el IF, dicha sentencia, si bien se ejecutar, tendr un defecto de sintaxis que puede llegar a ser peligroso en caso de un programa verdaderamente grande. La instruccin echo, como ya se explic anteriormente proporciona una salida en pantalla de todo lo que est dentro de las comillas dobles (" "), por lo que es importante observar cuidadosamente el resultado de nuestro cdigo. Si se dan cuenta la sentencia de impresin (o de salida a pantalla) dice echo "$a es menor que $b", pero el resultado en pantalla dice 1 es menor que 3. Lo anterior implica que, cuando imprimimos variables dentro de una instruccin echo, incluso cuando las variables estn incluidas dentro de las comillas, lo que se imprimir en pantalla ser el valor de dicha variable y no la cadena de caracteres que implica dicha variable, en nuestro ejemplo seran las cadenas "$a" y "$b". Si nuestro deseo es imprimir las cadenas de caracteres mencionadas, entonces debemos utilizar la instruccin de impresin de caracteres especiales \. En otras palabras, la instruccin debera ser echo "\$a es menor que \$b"; Con las correcciones anteriores, el resultado sera el siguiente:

Como resulta claro, el operador \, hace que el carcter especial $ se imprima en pantalla.

Por otro lado, la mayora de las veces, necesitaremos agrupar ms de una sentencia, dentro de la sentencia IF. Si ese fuese el caso, debemos de tener en cuenta que despus del primer punto y coma, la sentencia IF se acaba, por ello, para encerrar a varias sentencias, dentro de la sentencia IF, debemos utilizar las llaves { } para encerrar a todas las sentencias que deseemos que estn dentro de nuestra estructura de control IF, de la siguiente forma: <?php $a = 1;
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 13

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA $b = 3; if($a < $b){ echo "\$a es menor que \$b<BR>"; echo "El valor de \$a es $a y el de \$b es $b"; } ?> Para el ejemplo anterior, el resultado en pantalla sera el siguiente:

As pus, por favor recuerden de encerrar entre llaves las sentencias que han de ir dentro de una sola sentencia IF. Esto es todo en cuanto a IF, al menos por el momento.

ELSE
"Si me gustan los chocolates me los como, sino, los regalo" En muchas ocasiones, la evaluacin verdadera de una sentencia no es suficiente, ya que en la mayora de las ocasiones es necesario hacer algo especfico si la evaluacin resulta verdadera o hacer otra cosa si la evaluacin resulta falsa. Para ello existe un complemento de la sentencia IF, que es la sentencia ELSE, la cual se ejecuta slo en caso de que la sentencia no resulte verdadera. As pus, siguiendo con nuestro ejemplo anterior (y cambindolo un poco), tendramos:
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 14

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

<?php $a = 3; $b = 1; if($a < $b){ echo "\$a es menor que \$b<BR>"; echo "El valor de \$a es $a y el de \$b es $b"; } else{ echo "\$a es mayor que \$b<BR>"; echo "El valor de \$a es $a y el valor de \$b es $b"; } ?> Siendo que la evaluacin es falsa y definitivamente 3 no es menor que 1, nos vemos en la obligacin de hacer que nuestro programa reaccione ante este hecho y que nos de una respuesta en vez de dejarnos con una enigmtica pgina en blanco (el temor de cualquier escritor,... incluso de un escritor de programas para computadora). Por las razones anteriores, la sentencia ELSE viene en nuestro auxilio y nos brinda la otra solucin posible, si la sentencia no es menor, entonces, debe ser mayor y nos imprime el resultado en pantalla de la siguiente forma:

Sin embargo, hay algo que debera preocuparnos (pero,... siempre hay un pero, no es as?). Si leyeron bien las ltimas dos filas del prrafo anterior dicen si la sentencia no es menor,
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 15

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA entonces, debe ser mayor, lo cual no debe ser algo mandatorio, porque, que tal si no es ni mayor ni menor, sino ms bien igual. Esto implica que las sentencias IF...ELSE, no seran suficientes. Habr alguna forma de solucionar esto?, existir alguna sentencia que nos ayude a solventar este problema? La respuesta es S, s que la hay...

ELSEIF
"Si me gustan los chocolates me los como, sino, los vendo, sino, los regalo" Cuando las evaluaciones de una expresin van ms all de una o dos sentencias, entonces es necesario utilizar la instruccin elseif. Es decir, si la expresin 1 es verdadera se ejecutan las sentencias despus de la instruccin IF, sino, se ejecutaran las que acompaan a elseif, si la expresin 1 tampoco cumple con la evaluacin de elseif, entonces se ejecutan las sentencias de else. Para seguir con nuestro queridsimo y entraable ejemplo: <?php $a = 3; $b = 1; if($a < $b){ echo "\$a es menor que \$b<BR>"; echo "El valor de \$a es $a y el de \$b es $b"; } elseif($a>$b){ echo "\$a es mayor que \$b<BR>"; echo "El valor de \$a es $a y el valor de \$b es $b"; } else{ echo "\$a es igual que \$b<BR>";
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 16

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA echo "El valor de \$a es $a y el valor de \$b es $b"; } ?> El resultado en pantalla sera:

Como podemos ver, basados en los valores de las variables, el segmento de cdigo que se ejecutar es el que corresponde a elseif, es decir: elseif($a>$b){ echo "\$a es mayor que \$b<BR>"; echo "El valor de \$a es $a y el valor de \$b es $b"; } Y el resultado en pantalla lo demuestra. Una ltima observacin que agregar es que podemos anidar sentencias IF...ELSEIF una dentro de otra, dentro de otra, dentro de otra, tantas veces como necesitemos, es decir: if(exp1){ sentencias } elseif(exp1){ sentencias }
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 17

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA elseif(exp1){ sentencias } Tantas veces como sea necesario. Sin embargo, por razones de legibilidad, esto no es recomendable y hay que decir que existen alternativas al anidamiento de sentencias. Como hemos visto la estructura IF...ELSEIF...ELSE nos permite tomar una decisin en cuanto al rumbo que nuestro programa tomar, dependiendo de si una condicin se cumple o no se cumple, por esta razn son llamadas estructuras condicionales. Ahora iniciaremos con lo que se conoce como bucles, lo que no es ms que una sentencia que se repite una y otra vez, hasta que una condicin se cumple. Empezamos:

WHILE
"Mientras sea de da, tengo que trabajar" La sentencia WHILE viene a ser como el primer eslabn de la cadena evolutiva de un bucle, es decir, el bucle ms sencillo que hay. Lo que hace esta sentencia no es ms que decirle a PHP que ejecute las sentencias que contenga la instruccin WHILE, tanto tiempo como la expresin se evale como verdadera (TRUE). La sintaxis de WHILE es: while(expresin){ sentencias } Como ejemplo pondremos lo siguiente: <?php $a = 1; while($a < 11){ echo $a."<BR>";
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 18

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA $a++; } ?> El resultado en nuestro navegador sera el siguiente:

Observaciones necesarias Como podrn observar, la sentencia WHILE, como se habrn dado cuenta, contiene el operador de comparacin menor que (<), el cual le dice a while que la variable $a NO DEBE llegar al nmero 11. Lo mismo pudo haberse logrado cambiando la sentencia por "$a <= 10;", lo cual, de hecho hubiese sido ms exacto y ms legible.

Por otro lado, por favor observen la sentencia echo $a."<BR>"; Como ya habrn podido apreciar, despus de la variable, estamos utilizando el operador punto (.), el cual, como ya sabemos, concatena resultados de cadena. En realidad, en nuestro ejemplo, la concatenacin es una seudoconcatenacin, ya que en realidad, el operador punto slo le dice a PHP que despus de la primera pasada por la variable $a (en la cual dicha variable vale 1), agregue un salto de lnea de HTML, es decir la etiqueta <BR>, de tal manera que al repetirse el bucle, siendo que $a todava es menor que 11, la respuesta siguiente (2), se imprima en otra lnea. Este mismo ciclo o bucle, se repetir hasta que la expresin se haga falsa, es decir cuando $a deje de ser menor que 11.

DO...WHILE
"Haz la limpieza, mientras an es de da"
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 19

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA La similitud entre los bucles DO...WHILE y los bucles WHILE es enorme, salvo que en los bucles DO...WHILE se garantiza la ejecucin de las sentencias internas al menos una vez, dado que la validez de la expresin a evaluar se efecta hasta el final de la sentencia, cosa que no necesariamente debe pasar en un bucle WHILE, el cual evala la validez de la expresin al principio de la sentencia. La sintaxis de la sentencia DO...WHILE es la siguiente: DO{ sentencias }WHILE(expresin) Siguiendo la misma lnea del ejemplo anterior, tendramos: <?php $a = 1; do{ echo $a."<BR>"; $a++; }while($a<=10) ?> Obteniendo exactamente el mismo resultado en pantalla:

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

20

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA Algo que debemos agregar de DO...WHILE en cuanto al ejemplo propuesto, es que aunque $a hubiese valido 11, la impresin de la pantalla se hubiese llevado a cabo. Por qu?, porque la evaluacin de la sentencia se llev a cabo hasta el final del bucle. Esto es una observacin realmente vital, pues si la intencin de nuestro programa hubiese sido la nunca imprimir el nmero 11 en pantalla, entonces nuestro programa hubiese fallado de la manera ms catastrfica posible. Por favor tengan en cuenta lo anterior cuando utilicen DO...WHILE. Suficiente sobre DO...WHILE.

FOR
"Para todos estos nios, reparte estos caramelos" La enorme belleza del bucle FOR, es que todo su poder se resume en una sola fila, al igual que toda su complejidad. La sintaxis de un bucle FOR es la siguiente: for (exp1; exp2; exp3) La primera expresin (exp1) se ejecuta una vez, al principio del bucle. La segunda expresin (exp2) se evala al comienzo de cada iteracin o retorno al bucle. La tercera expresin (exp3) se ejecuta al final de cada iteracin o retorno al bucle. Nuestro ejemplo sera:

<?php for($i = 0; $i <= 10; $i++){ echo "Esta es la fila ".$i; echo "<BR>"; } ?> El resultado en pantalla sera el siguiente:

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

21

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

Observaciones: En primer lugar, debemos notar que la variable $i es inicializada en 0 y termina en 10, por consiguiente, y en estos momentos podr parecer totalmente irrelevante pero puede llegar a salvarles la vida, el nmero de filas es 11 y no 10. Por otro lado, la variable $i es inicializada en la declaracin del bucle FOR y no antes. Bien, los bucles en PHP representan, como ya vimos, la forma de llevar a cabo una serie de sentencias, basados en la evaluacin, (cierta o falsa) de las expresiones contenidas.
Como ya vimos, las estructuras IF...ELSEIF...ELSE, son muy tiles para decidir el flujo de nuestro programa dependiendo de la evaluacin de una expresin. Sin embargo, cuando las opciones se vuelven muy grandes, el anidamiento de las sentencias IF...ELSEIF...ELSE se vuelve un verdadero problema en cuanto a estilo y legibilidad. Habr una manera de solventar este problema?... CLARO! para eso tenemos a nuestro buen amigo SWITCH.

SWITCH
"Como un ferrocarril cambiando de va" La sentencia switch evala la expresin y dependiendo del valor de la expresin, as se llevar a cabo un "caso" u otro. La sintaxis de SWITCH es la siguiente: Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 22

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

switch(expresin){ case 1: sentencias a ejecutarse en caso de que expresin valga 1; break; case 2: sentencias a ejecutarse en caso de que expresin valga 2; break; default: sentencias a ejecutarse en caso de que expresin no cumpla con ninguno de los valores anteriores; } Como podrn apreciar, la sentencia break se ha colocado al final de cada posible caso de valor de expresin, dicindole a PHP que, si el valor de un caso especfico se cumple, el siguiente caso no habr de ser evaluado, sino que el flujo de nuestro progama continuar inmediatamente despus de la sentencia SWITCH. Adems, noten la presencia de la palabra default, la cual est en nuestro SWITCH como un salvavidas, pues en caso de que expresin no concuerde con ninguno de los posibles casos, la sentencia default se ejecutar.

Ejemplo: <?php $nombre = "Eva"; switch($nombre){ case "Adan": echo "El nombre es Adn"; break; case "Abel": echo "El nombre es Abel"; break; case "Eva": Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 23

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA


echo "El nombre es Eva"; break; default: echo "No hay nombre que concuerde"; } echo "<BR>Esto est fuera de SWITCH"; ?> La salida en pantalla sera la siguiente:

SWITCH, como ya dijimos es una forma de abreviar el trabajo de una serie de IF...ELSEIF...ELSE anidadas en un cdigo mucho ms elegante y mucho ms legible a la hora de hacer una depuracin para encontrar posibles errores o "bugs" en nuestro cdigo. Bien, despus de esto podemos dar por finalizadas las estructuras de control.

ARREGLOS Como ya vimos con anteriordad, las variables son contenedores de datos en los que nosotros (o como veremos ms adelante, el USUARIO) guarda datos que, en un determinado momento y con la ayuda de otros tantos datos, podr convertirse en informacin. Sin embargo, las variables que hemos visto hasta hoy son del tipo $a = un_valor. Habr ocasiones en las que guardar ms de un valor en una sola variable se har necesario, pero en las variables vistas hasta este momento, no es posible, pues si asignamos primero un valor a una variable y luego le asignamos otro, el nuevo valor sustituir al primero. Para resolver nuestro problema, PHP tiene los arreglos o arrays, que no son ms que variables con la capacidad de guardar ms de un dato. Para declarar un arreglo o array, todo lo que tenemos que hacer es lo siguiente: <?php
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 24

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA $libros = array("Don Quijote de la Mancha", "La Saga/Fuga de J.B.", "El Jarama", "Ulises"); echo $libros[3]; ?> Lo anterior, dicho en simples y sencillas palabras dice: 1. La variable $libros es un arreglo de 4 elementos los cuales son "Don Quijote de la Mancha", "La Saga/Fuga de J.B.", "El Jarama", "Ulises" 2. Mande a la pantalla el elemento 4 del arreglo (OJO, no es un error de dedo eso del elemento 4) . Nuestro resultado en pantalla es:

Antes de que la curiosidad nos corroa (claro, si ustedes ya saben programar, por ejemplo en C/C++ el suspenso se les muri hace mucho), hemos de aclarar que la variable $libros contiene 4 elementos: "Don Quijote de la Mancha", "La Saga/Fuga de J.B.", "El Jarama", "Ulises", sin embargo, la instruccin echo dice echo $libros[3]. La razn de esto es que los arreglos comienzan su conteo de elementos a partir de cero (0). Hay que hacer notar que lo anterior es de suma importancia, pues no podemos hacer referencia a un elemento inexistente dentro de un arreglo, por lo tanto, si nuestra intencin es referirnos al elemento 4 del arreglo, debemos comenzar nuestro conteo desde 0, con lo que la instruccin sera como ya hemos visto echo $libros[3]. En caso de que se estn preguntando el resultado de la referencia $libros[4], en la mayora de las ocasiones no es ms que una pgina en blanco, sin embargo, el resultado tambin podra ser un tanto inesperado. Como quiera que sea, por favor recuerden siempre de empezar su conteo desde 0, algo seguro es que PHP no lo olvidar jams.

ARREGLOS ASOCIATIVOS

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

25

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA Supongamos que estamos construyendo una pgina Web en la que, dependiendo del idioma escogido, as se desplegar un saludo en nuestra pantalla del navegador. Una solucin podra ser la siguiente: <?php $saludos = array("Hello!", "Salut!", "Que taaaaaal!"); echo $saludos[2]; ?> La impresin en pantalla sera:

Antes que nada, por qu se imprime el tercer saludo y no el nmero 2? (Una multa de chocolates si no sabe la respuesta!) Sin embargo, lo ms lgico sera que, en base a la seleccin de un idioma, el saludo respectivo se desplegara. Para ello utilizamos los arreglos asociativos. Considere ahora la siguiente adicin a nuestro ejemplo anterior: <?php $saludos = array("Ingls"=>"Hello!", "Francs"=>"Salut!", Espaol"=>"Que taaaaaal!"); echo $saludos["Espaol"]; ?> El resultado en pantalla es exactamente el mismo que en el ejemplo anterior, pero claro, esta nueva adicin nos permite ser un poco ms elegantes, adems de hacernos ms fcil la correccin o modificacin de nuestro cdigo, haciendo referencia a la generalidad y no a la especificidad.
Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas 26

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA OPERACIONES CON CADENAS La siguiente frase: "Pablito clav un clavito en la calva de un calvito", es una cadena de caracteres que puede ser grabada en una variable en PHP de la forma que ya conocemos, es decir de la forma $trabalenguas = "Pablito clav un clavito en la calva de un calvito". Sabiendo lo anterior, trabajemos con los operadores de cadenas en PHP. strlen: La funcin strlen obtiene la longitud de una cadena y devuelve un nmero entero. Aplicando nuestra variable, el cdigo es el siguiente: <?php $trabalenguas = "Pablito clav un clavito en la calva de un calvito"; echo strlen($trabalenguas); ?> El resultado de esto es el siguiente:

substr: Esta funcin devuelve una subcadena de la cadena original o, dicho de otra forma, una parte de la cadena. Los argumentos de substr son tres: el primero es la cadena o variable que contiene la cadena; el segundo es un nmero entero que representa la posicin en la cual la subcadena comenzar a ser extrada; y el tercer argumento opcional, que es la cantidad de caracteres que sern extrados. Con nuestra cadena, el ejemplo sera: <?php $trabalenguas = "Pablito clav un clavito en la calva de un calvito"; echo substr($trabalenguas, 17); ?> El resultado en pantalla es el siguiente:

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

27

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

str_replace: Esta funcin reemplaza una subcadena dentro de la cadena original, por otra subcadena. Los argumentos que esta funcin recibe son tres: la subcadena que ha de buscar; la subcadena que que debe reemplazar a la primera; y la cadena original o la variable que contiena la cadena original. <?php $trabalenguas = "Pablito clav un clavito en la calva de un calvito"; echo str_replace("Pablito", "Pedrito", $trabalenguas); ?>

Nuestro resultado sera:

Las anteriores son probablemente las funciones de cadena ms utilizadas. Existen muchas otras funciones, pero hara falta mucho ms tiempo para explicarlas todas.

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

28

[UNIVERSIDAD NACIONAL AUTNOMA DE NICARAGUA] CUR MATAGLAPA

Facultativa I- Programacin en PHP | Lic. Henry F. Palma Vivas

29

Das könnte Ihnen auch gefallen