06to Semestre-Guia - PHP

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

Manual PHP

1. Introducción

1.1 ¿Qué es PHP?


PHP(HyperText Pre-Procesor), es un leguaje nuevo, su antecesor fue el PHP-SI que
salió a finales de 1994, creado principalmente como herramienta para el desarrollo de
aplicaciones web. PHP permite diseñar paginas dinámicas en el servidor, capaces de
responder de manera inteligente a las demandas del usuario.
Es un lenguaje interpretado de alto nivel embebido en paginas HTML y ejecutado en el
servidor.
PHP es un software libre y multiplataforma y sigue la filosofía Open Source.
Su éxito se debe al complemento entre Linux, Apache, MySQL y a que es un lenguaje
muy sencillo.
Se puede utilizar como cualquier lenguaje ejecutándolo desde la línea de comandos, sin
necesidad que se ejecute con un servidor Web.
Tiene soporte para muchos servidores Web como Apache, Microsoft Internet Information
Server, Personal Web Server, Net Scape e Iplanet, Oreilly Web Site Pro Server,
Cauidium, Xitami, Omni Httpd, y muchos otros.
Soporta múltiples bases de datos como MySQl, MS-SQL, Oracle(OCI7 y OCI8), Dbase,
IBM DB2, Informix, Unix DBM, y muchos otros.
Soporta ODBC y extenciones DBX.
Puede utilizar objetos de Java de forma transparente como objetos PHP.
Es capaz de generar resultados en múltiples formatos tales como HTML, XHTML, XML,
ficheros de imágenes, ficheros PDF y películas Flash.
Parser de documentos XML, manejo de XSLT para transformar documentos XML.

1.2 Instalación y configuración


PHP puede ser ejecutado por el servidor de dos modos, como módulo del
servidor(Intefaz SAPI, Server Application Programing Interface) o como programa
externo(Modo CGI Comon Gateway Interface).
Hay que tomar en cuenta que la instalación en modo CGI tiene innumerables problemas
de seguridad asociados, además de bajo rendimiento.
En cambio, la versión SAPI permite acceder directamente a las funciones internas del
servidor por lo tanto podemos añadir nuevas funcionalidades al servidor(Por ejemplo
Acceso a Bases de Datos, Autentificación de Usuarios, Cacheo de Paginas, Generación
de Imágenes al Vuelo, etc.) todas estas nuevas funcionalidades se van a ejecutar de
manera rápida y eficiente porque se van a ejecutar en el propio espacio de memoria del
Servidor.
Antes de comenzar a instalar el PHP es necesario contar con un servidor Web ya
instalado, en este caso el servidor Web que Instalaremos será el Apache 2.
En caso de no contar con el servidor Apache 2, ya instalado, éste se puede bajar de la
siguiente dirección de Internet.
http://www.apache.org

Correr el archivo que se bajo y seguir la instalación.


La instalación pedirá los siguientes datos:
Dominio de Red
Nombre de Servidor
Email del Administrador

Para efectos de practica se utilizaran los siguientes datos:

Dominio de Red localhost.com


Nombre de Servidor www.localhost.com
Email del Administrador [email protected]

Para probar que la instalación se realizó de manera correcta, abra el navegador web de su
preferencia y escriba http://localhost/ y debe aparecer la siguiente pagina.
En caso de que no funcione presione el botón Inicio(Start), después el abra el menú
Archivos de Programas(All Programs), busque “Apache HTTP Server”, y dentro de ese
menú, acceda a “Control Apache Server” y de Clic en “Monitor Apache Servers”, como
se muestra en la siguiente imagen.
Aparecerá una nueva ventana, que es la del monitor del Servidor, en ésta presione el
botón “Start”.

Con lo anterior se inicia el servicio de servidor de paginas web del Apache.


Ahora instalaremos el PHP, primero hay bajar el la versión binaria del PHP de la
siguiente dirección web:
http://www.php.net

Es recomendable bajar la versión ZIP y no el instalador porque la versión ZIP contiene la


versión tanto la versión CGI como la versión SAPI.
Una vez bajado el archivo siga los siguientes pasos:

1.- Descomprimir el archivo en la carpeta “c:\php”.


2.- Localizar la librería dll “php4ts.dll” en el directorio “c:\php\”y colocarla en
“c:\Windows\System32\”.
3.- Localizar el archivo “php.ini-dist” renombrarlo como “php.ini” abrirlo con
un editor de texto.
4.- Modificar el archivo “php.ini” en donde se encuentra la siguiente linea:
“extensions_dir = ./”
Con la siguiente:
“extension_dir = ./extensions”
Que es donde se encuentran las librerías de funcionalidades adicionales.
5.- Guardar el archivo en “c:\Windows\System\”
6.- Parar el servidor Apache por medio del monitor, modificar el fichero
“http.conf” localizado en el directorio “conf” del Apache. Según como lo
quiera instalar, como CGI o como Modulo(SAPI) es como se realizara la
modificación.
6a .- CGI, agregar las siguientes líneas:
ScriptAlias /php/ “c:/php/”
AddType application/x-httpd-php .php .phtml
Action application/x-httpd-php “/php.exe”

6b .- Modulo(SAPI) agregar las siguientes líneas:

LoadModule php4_module c:/php/sapi/php4apache2.dll


AddType application/x-httpd-php .php .phtml

NOTA: No coloque el código para los dos modos(CGI y SAPI), eso


ocasionaría deficiencias en el funcionamiento del servidor.

7 .- Iniciar el servidor Apache con el monitor.


8.- Para comprobar la correcta instalación abra un editor de textos y copie el
siguiente código.

<?
phpinfo();
?>

Guardar el archivo como “info.php” dentro del directorio “htdocs” que se


encuentra en el directorio del Apache.
Abrir una ventana nueva del navegador y escribir en la barra de direcciones
“http://localhost/info.php”. Debe aparecer la siguiente pagina:

9.- En caso de funcione revise los pasos anteriores.

Con lo anterior se puede dar por finalizada la instalación de PHP en modo local.
2. Sintaxis en PHP

2.1 Sintaxis Básica

Para colocar código PHP embebido en HTML es necesario colocar las marcas
delimitadoras del código PHP. Las cuales pueden ser:

Esta es la sintaxis más utilizada


<?php
Instrucciones PHP
?>

Estas no son tan recurridas


<?
Instrucciones PHP
?>
Para esta sintaxis que esta activada la directiva “short_open_tag” en el fichero php.ini

<%
Instrucciones PHP
%>

La anterior es la utilizada comúnmente en el lenguaje ASP, pero puede ser utilizada en


PHP si se cambia la directiva “aspt_tags” en el fichero php.ini.

<script language=”php”>
instrucciones PHP
</script>

En los ejemplos que se utilizaran en este manual se utilizará el primer formato, para el
cual no se necesita realizar ninguna configuración.

Para agregar comentarios en PHP ofrece la posibilidad de realizarlo de tres maneras


distintas que son utilizadas en otros lenguajes:

 Comentarios de solo una línea C y C++


 Comentarios multilínea C y C++
 Comentarios tipo Shell
En el siguiente cuadró de código se muestra un ejemplo de cómo realizar cada uno de los
comentarios.

<HTML>
<HEAD>
<TITLE>Prueba Comentarios</TITLE>
</HEAD>
<BODY>
<CENTER>
<H2>
<?php
// Comentario inicial
echo "Primer tipo de comentarios"; // Comentario tipo C, C++
// Comentario final
?>
<BR>
<?php
/* Comentario inicial */
echo "Segundo tipo de comentarios"; /* Comentario tipo C, C++ */
/*
Comentario
Final
*/
?>
<BR>
<?php
# Comentario inicial
echo "Tercer tipo de comentarios"; # Comentario tipo shell
# Comentario Final
?>
</H2>
</CENTER>
</BODY>
</HTML>

Para cada línea de código en PHP es necesario colocar un punto y coma al final de la lína
excepto de la ultima línea antes de cerrar la etiqueta de PHP (“?>”).

<?php
echo “Finalizando con etiqueta de cierre”
?>
<?php
echo “Finalizando con punto y coma”;
?>
En el lenguaje de programación PHP no es necesaria la declaración de variables y las
variables no tienen asociada la naturaleza del tipo de información que almacenan, a lo
anterior se le conoce como lenguaje débilmente tipificado. Una variable podrá almacenar
diferentes tipos de información. Al inicializar una variable en PHP es necesario tomar en
cuenta que el lenguaje diferencia entre mayúsculas y minúsculas es decir, si se inicializa
una variable con el nombre “Var” y la queremos utilizar después como “var” PHP
generaría una nueva variable. Para inicializar una variable es necesario colocar “$” antes
des del nombre de la variable, por ejemplo, “$Var”.

PHP soporta tres tipos de datos simples, Integer, Float(Sustituyó al Double desde la
versión 4.2.0) y String. Y dos tipos de datos compuestos Array y Object, además se hace
uso de un tipo lógico Bolean aunque no aparece definido como tal en la sintaxis del
lenguaje.

Los tipos de datos enteros van de –2000,000,000,000 a +2000,000,000,000 y se pueden


utilizar, con diferentes sintaxis, porque se pueden usar en formato decimal(Base Diez),
octal(Base Ocho), o hexadecimal(Base 16).

Un número entero en base decimal puede incluir cualquier secuencia de dígitos pero esta
no puede comenzar con un cero, porque los números enteros en formato octal comienzan
con un 0 y pueden incluir cualquier secuencia de dígitos en entre el 0 y el 7. Para los
exadecimales hay que colocar “0x” delante del entero los enteros exadecimales incluyen
dígitos del 0 al 9 junto con letras de la “A” a la “F”.

El siguiente ejemplo muestra la utilización de las distintas formas de enteros que maneja
PHP.

<?php
$num = 502; //número decimal
echo $num; //mostramos el valor de $num
?>

<?php
$num = -502; //número decimal negativo
echo $num; //mostramos el valor de $num
?>

<?php
$num = 0502; //número octal
echo $num; //mostramos el valor de $num
?>

<?php
$num = 0x12; //número hexadecimal
echo $num; //mostramos el valor de $num
?>
Las variables tipo “Float” se representan números en coma flotante o lo que es igual
números con decimales, entonces podemos decir que son números decimales con parte
fraccionaria, números que se pueden expresar en forma estándar o en forma científica. En
notación científica se utiliza la letra “e” o “E” para designar el exponente y pueden ser
negativos y positivos.
El siguiente ejemplo muestra la utilización de los dos formatos de las variables tipo
“Float”.

<?php
$num = 2.589; //formato estándar
echo $num; //mostramos el valor de $num
?>

<?php
$num = 1.5e2; //formato científico
echo $num; //mostramos el valor de $num
?>

Con el tipo “String” se representan las cadenas de caracteres, una cadena está formada
por 0 o más caracteres entre dobles comillas(“”) o comillas simples(„‟).
Cuando se utilizan comillas dobles se pueden incluir dentro de la cadena nombres de
variables y éstas al ser impresas son sustituidas por el valor de la variable, en cambio si se
utilizan comillas simples y dentro se colocan variables, éstas no será impreso el valor de
la variable sino el nombre de la variable.
El siguiente ejemplo muestra lo anterior mencionado sobre las comillas dobles y simples.

<?php
$lenguaje="PHP";
$ver="v4";
echo "<B>Estamos 'trabajando' con $lenguaje $ver </B><BR><BR>";
echo 'La variable $lenguaje contiene: ';
echo "$lenguaje <BR>";
echo 'La variable $ver contiene: ';
echo $ver;
?>

El tipo de datos “Array” son estructuras que almacenan un conjunto de datos con un
mismo nombre. En el lenguaje PHP los “Arrays” pueden estar compuestos de datos de
diferente tipo e inician con índice “0”. Existen en PHP un tipo de “Array” denominado
asociativa estas pueden ser indexadas por un número o por una clave.
El ejemplo siguiente muestra como utilizar las “Arrays” con índices del modo normal o
con claves del modo asociativo.
<?php
$matriz1[0]="cougar";
$matriz1[1]="ford";
// la tercera posición del array esta vacía
// por eso le asignamos una cadena sin contenido
$matriz1[2]="";
$matriz1[3]="2.500";
$matriz1[4]="V6";
$matriz1[5]=182;
$matriz1[]=182;
// para añadir el último elemento a una matriz
// no es necesario poner el número de índice

// creamos la matriz asociativa


$matriz2['modelo']="cougar";
$matriz2['marca']="ford";
// para marca una posición sin contenido también
// se puede utilizar <null>
$matriz2['fecha']=null;
$matriz2['cc']="2.500";
$matriz2['motor']="V6";
$matriz2['potencia']=182;
?>

2.2 Manejo de Operadores

PHP maneja diferentes tipos de operadores de los cuales en éste manual se verán los
siguientes:

 Operadores Aritméticos
 Operadores de Asignación
 Operadores de Incremento y Decremento
 Operadores Comparación
 Operadores Lógicos

Los operadores aritméticos como su nombre lo indica son los que permiten realizar
operaciones aritméticas. En la siguiente tabla se listan los operadores aritméticos y su
descripción.

Operador Ejemplo Descripción


+ $a+$b Suma dos Operándos
- $a-$b Resta dos Operándos
* $a*$b Multiplica dos Operándos
/ $a/$b Divide dos Operándos
% $a % $b Resto de la División Entera
El siguiente ejemplo muestra un caso donde se pueden utilizar operadores aritméticos:

<?php
$euro=166.386;
echo "El valor de la constante 'euro' es: <B>". euro ."pts.</B><BR><BR>";
echo "1000€ son ". (euro*1000) ."pts<BR>";
echo "1000pts. son ". intval((1000/euro)*100)/100 ."€<BR><BR>";
echo "157€ son ". intval(157/50) ." billetes de 50€";
echo " y ". (157%50) ."€";
?>

Los operadores de asignación hacen que la variable de la izquierda tome el valor de la


expresión de la derecha. En la siguiente tabla se resumen los operadores de asignación:

Operador Ejemplo Descripción


= $a=$b $a toma el valor de $b
+= $a+=$b Equivale a $a=$a+$b
-= $a-=$b Equivale a $a=$a-$b
*= $a*=$b Equivale a $a=$a*$b
/= $a/=$b Equivale a $a=$a/$b
%= $a%=$b Equivale a $a=$a%$b
.= $a.=$b Equivale a $a=$a.$b

El siguiente ejemplo muestra como utilizar los operadores de asignación:


<?php
define(“euro”,166.386);
// en la variable $texto vamos a concatenar todo el texto a mostrar
// por pantalla
$texto = “El valor de la constante „euro‟ es: <B>”;
$texto .= euro;
$texto .= “pts.</B><BR><BR>”;
$texto .= “1000€ son “;
$valor = euro*1000; //calculamos el valor de 1000€
$texto .= $valor;
$texto .= “pts<BR>”;
$texto .= “1000pts. Son “;
$valor =1000/euro; //obtenemos el valor de 1000pts en €
$valor *= 100; //lo multiplicamos por 100
$valor = intval($valor); //eliminamos los ecimales que no queremos
$valor /= 100; //lo dividimos por 100 para obtener el valor final
$texto .= “€<BR><BR>”;
$texto .= “157€ son “;
$valor = intval(157/50);
$texto .= $valor .” billetes de 50€ y “. (157%50) .”€”;
echo $texto;
¿>
Los operadores de incremento y decremento como su nombre lo dice incrementan o
decrementan el valor de la variable, a continuación se muestra una tabla con los
operadores utilizados:

Operador Ejemplo Descripción


++$a Preincremento: Incrementa
++ $a y nos regresa $a
$a++ Posincremento: Devuelve $a
y después incrementa $a
--$a Predecremento: Decrementa
-- $a y nos regresa $a
$a-- Posdecremento:Devuelve $a
y después decrementa $a

El siguiente ejemplo muestra como utilizar los operadores de incremento y decremento:

<?php
$a=7;
echo "El valor inicial de \$a es: <B>$a</B><BR>";
echo " Al preincrementar (++\$a) devuelve: <B>".++$a."</B><BR>";
echo " Al postincrementar (\$a++) devuelve: <B>".$a++."</B><BR>";
echo "El valor final de \$a es: <B>$a</B><BR><BR>";
$b=7;
echo "El valor inicial de \$b es: <B>$b</B><BR>";
echo " Al predecrementar (--\$b) devuelve: <B>".--$b."</B><BR>";
echo " Al postdecrementar (\$b--) devuelve: <B>".$b--."</B><BR>";
echo "El valor final de \$b es: <B>$b</B><BR>";
?>

Los operadores de comparación se utilizan para comparar dos expresiones y nos pueden
regresar valores “true“ o “false”, a continuación se muestra una tabla con dichos
operadores:

Operador Ejemplo Devuelve True cuando:


== $a= =$b Los operandos son iguales
!= $a ! = $b Los operandos son distintos
=== $a = = =$b Los operandos son iguales y del mismo tipo
!= = $a!= =$b Los operandos no son iguales o del mismo tipo
< $a < $b $a es menor que $b
> $a > $b $a es mayor que $b
<= $a <= $b $a es menor o igual que $b
>= $a >=$b $a es mayor o igual que $b

Se verá más adelante la utilización de estos operadores en el tema de estructuras de


control.
Los operadores lógicos se utilizan conjuntamente con expresiones que devuelven valores
lógicos (true o false), estos operadores no solo combinan variables si no que también
pueden evaluar expresiones en una sola expresión, a continuación se muestra la tabla con
dichos operadores:

Operador Ejemplo Devuelve True cuando:


&& $a && $b $a y $b son ambos true
and $a and $b
|| $a || $b $a o $b son true
or $a or $b
! !$a Niega el valor lógico de la variable
xor $a xor $b $a es true o $b es true pero no pueden ser iguales

La utilización de estos operadores se verá más adelante, cuando se vean estructuras de


control.

La precedencia de los operadores en orden de menor a mayor está dada por la siguiente
tabla:

Operador
Or
Xor
And
=,+=,-=,*=,/=,.=,%=
||
&&
|
^
&
= =,!=, = = =
<,<=,>,>=
<<,>>
*,/,%
+, -, .
!,++,--,(int),(double),(string),(array),(object)

2.3 Estructuras de Control

Las estructuras de control o sentencias de control nos permiten cambiar el flujo o


ejecución de un programa gracias a ellas los programas no son totalmente secuenciales,
nos permiten bifurcar el flujo del programa y ejecutar unas partes u otras del código o
hacer que se repitan tantas veces como queramos, dentro de estas estructuras de control
están:
 Las Sentencias Condicionales
o if
o if ... else
o if …elseif
o if compacto ( ? : )
o switch
 Sentencias de Bucles (ciclos)
o for
o for each
o while
o do while
o break y continue

Las sentencias condicionales son las más sencillas y por medio de estas podemos hacer
que un programa elija entre dos caminos con base a la evaluación de una expresión
lógica.

La sentencia “if” es de las más utilizadas e importante en la mayoría de los lenguajes su


sintaxis es la siguiente:

if (condicion)
{ [sentencias] }

Se evalúa la condición y si resulta verdadera se ejecutarán las sentencias contenidas entre


las llaves “{“ y “}”, y si es falsa se ignorarán las sentencias y se continuará con la
ejecución del programa.
En caso de que sea una sola sentencia no es necesario el uso de llaves, a continuación se
muestra el código ejemplo para la utilización de esta sentencia:

<?php
$a=3;
$b=7;
$c=9;
echo "<BR>Los tres números a comparar son: ";
echo "<B>$a, $b </B>y<B> $c</B><BR><BR>";
echo " y el mayor es el <B>";
if (($a>$b)&&($a>$c))
{ echo $a; }
if (($b>$a)&&($b>$c))
{ echo $b; }
if (($c>$a)&&($c>$b)){
echo $c;
}
echo "</B>";
?>
En el ejemplo anterior se trata de identificar el mayor de un conjunto de tres valores por
medio de la sentencia “if”.

La sentencia “if...else” la utilizamos cuando además de querer comparar si la instrucción


“if” es cierta y no es cierta, la sintaxis es la siguiente:

if (condicion)
{ [sentencias] }
else
{ [sentencias] }

Utilizando la sentencia “if...else” con el ejemplo anterior tendremos esta posible solución:

<?php
$a=3;
$b=7;
$c=9;
echo "<BR>Los tres números a comparar son: ";
echo "<B>$a, $b </B>y<B> $c</B><BR><BR>";
if ($a>$b){
$elmayor=$a;
}
else{
$elmayor=$b;
}
if($elmayor<$c){
$elmayor=$c;
}
echo " y el mayor es el <B>$elmayor</B>";
?>

La sentencia “if...elseif” nos permite evaluar una nueva comprobación utilizando la


sentencia “if” dentro de una sentencia “else”, la sintaxis es la siguiente:

if (condicion)
{ [sentencias] }
elseif
{ [sentencias] }

Para el ejemplo de buscar el mayor de los 3 números por medio del “elseif” tendremos
una nueva solución que es la siguiente:
<?php
$a=3;
$b=7;
$c=9;
echo "<BR>Los tres números a comparar son: ";
echo "<B>$a, $b </B>y<B> $c</B><BR><BR>";
if ($a>$b){
if($a>$c){
$elmayor=$a;
}
else {
$elmayor=$c;
}
}
elseif($b>$c){
$elmayor=$b;
}
else {
$elmayor=$c;
}
echo " y el mayor es el <B>$elmayor</B>";
?>
La sintaxis de la sentencia “if-elseif-else” puede tener tantos componentes “elseif” como
sean necesarios.

La expresión condicional “if-compacto”es utilizada para devolver uno de dos posibles


valores basándose en el valor lógico obtenido al evaluar la expresión, la sintaxis es la
siguiente:

<expresion1> ? <expresion2> : <expresion3>;

La sentencias “switch” se utiliza para comparar un dato con un conjunto de posibles


valores. Esta tarea se puede realizar con multiples sentencias “if”o “elseif”, pero la
sentencia “switch” es la más legible porque nos permite especificar un conjunto de
sentencias por defecto y en caso de que no coincidan con ellos se tiene la sentencia
“default”. La sintaxis de “switch” es la siguiente:
switch ($variable){
case valor1:[sentencias;]
[break;]
case valor2:[sentencias;]
[break;]
case valorN:[sentencias;]
[break;]
[default:sentencias;]
}
El ejemplo siguiente hace uso de la sentencia “date(“D”)” para identificar el día actual, y
por medio de una sentencia “switch” imprimimos el día actual en español porque la
función “date(“D”)” no lo regresa en inglés y abreviado.

<?php
echo "Hoy es <B>";
$dia = date("D");

switch($dia){
case "Mon": echo "Lunes";
break;
case "Tue": echo "Martes";
break;
case "Wed": echo "Miércoles";
break;
case "Thu": echo "Jueves";
break;
case "Fri": echo "Viernes";
break;
case "Sat": echo "Sábado";
break;
default: echo "Domingo";
}
echo "</B>";
?>

Podemos ver como en caso de que no sean ninguno de los días de lunes a sábado entra al
caso “default” e imprime Domingo.

Las sentencias de ciclos o bucles dentro de un programa en PHP comúnmente se utilizan


para contar o para recorrer objetos o estructuras de tipo “array”. La primer forma de
utilizar bucles que veremos es el bucle “for” éste nos permite realizar un conjunto de
instrucciones un determinado número de veces. La sintaxis del bucle “for” es la siguiente:

for[expresión_inicialización];[expresión_condición];[expresión_bucle]
{
[sentencias;]
}

Las tres expresiones contenidas entre paréntesis son opcionales pero los punto y
coma(“;”) son obligatorios.

 La “expresión_inicialización” se utiliza para inicializar y declarar la variable o


variables que se utilizarán como contadores del bucle; esto solo se ejecuta una vez
al inicio del bucle.
$variable=valor_inicial;
 La “expresión_condición” define una o más condiciones que se deben evaluar y
cumplirse para que se ejecuten las sentencias entre las llaves “{“ ”}”. Mientras la
condición sea verdadera se seguirán ejecutando las sentencias.

 La “expresión_bucle” modifica el valor de la variable o variables definidas dentro


de las “expresión_inicialización”. Se ejecuta cada vez que se finaliza una
interacción. No sigue un formato fijo puede utilizarse:

$variable++
$variable- -
$variable+=valor

En caso que dentro del bucle solo se haya definido una sentencia a ejecutar se pueden
omitir las llaves “{“ y “}”. A continuación se verá un ejemplo de la utilización de este
tipo de bucle.

<?php
echo "la suma de los 10 primeros números enteros es:";
$suma=0;
for($i=1;$i<=10;$i++){
$suma+=$i;
echo ($i==10)?"$i = ":"$i+";
}
echo "<B>$suma</B>";
?>

El ejemplo anterior muestra el funcionamiento del bucle “for” para imprimir una suma de
diez números enteros.

La sentencia “foreach” nos permite recorrer estructuras tipo “Array” de una forma
sencilla, obteniendo en cada paso de la interacción uno de los elementos componentes.
Esta sentencia está incluida a partir del “PHP 4”.

La sentencia “foreach” tiene nos sintaxis la primera es:

foreach(nombre_array as $variable)
{
[sentencias;]
}

Lo que hace la sintaxis anterior es recorrer cada uno de los elementos del “Array” que
tiene por nombre “nombre_array”, asignando en cada paso el valor del elemento actual
del “Array” al contenido de la variable $variable. Este bucle hace uso de un puntero
interno que apunta a la posición actual del “Array”, que se actualiza automáticamente en
cada una de sus interacciones.
<?php
foreach($matriz as $valor){
echo "<TR ALIGN='center'>";
echo "<TD> $valor </TD>";
echo "</TR>";
}
?>

El ejemplo anterior muestra como se van leyendo los elementos de la matriz “$matriz” en
la variable $valor y son colocados en celdas de una tabla.

La segunda sintaxis del bucle “foreach” es la siguiente:

foreach(nombre_array as $clave =>$valor)


{
[sentencias;]
}

Con esta nueva sintaxis podemos realizar las mismas operaciones que con la anterior,
pero nos permite además conocer en todo momento la posición exacta del índice a través
de la variable “$clave” además del valor contenido en la variable “$valor”.
El ejemplo siguiente es similar al ejemplo anterior solo que en este además de colocar el
valor de la variable se coloca la posición del apuntador en una celda de una tabla.

<?php
foreach($matriz as $key => $valor){
echo "<TR ALIGN='center'>";
echo "<TD> $key </TD>";
echo "<TD> $valor </TD>";
echo "</TR>";
}
?>

En caso de que una de las posiciones del “Array” se encuentre vacía se imprimirá como
tal vacía es decir se imprimirá el numero del índice y un espacio en blanco en la parte del
valor.

Otro de los bucles muy recurridos es el bucle “while” este actua en forma similar al “for”,
pero se diferencia de éste porque no incluye ninguna inicialización de variable ni una
expresión de incremento. “while” podría se traducido directamente como “mientras que”
es decir mientras que se cumpla una condición el bucle continuará ejecutándose. La
sintaxis del bucle “while” es la siguiente:
while(condición)
{
[sentencias;]
}
En caso de que solo sea una sentencia la que se quiere ejecutar dentro del bucle “while”
se pueden omitir las llaves “{” y “}”.
Se puede ver claramente la utilización del bucle “while” dentro del siguiente código
ejemplo:

<?php
echo "<TABLE BORDER='1'>";
$fila=1;
while($fila<=10){
echo "<TR ALIGN='CENTER'>";
$col=1;
while($col<=10){
echo "<TD>".($fila*$col)."</TR>";
$col++;
}
echo "</TR>";
$fila++;
}
echo "</TABLE>";
?>

El programa ejemplo anterior genera una tabla de multiplicaciones por medio de dos
ciclos “while” uno anidado dentro del otro, nótese que las variables que se encuentran en
la condición se incrementan dentro del ciclo para que este llegue ala condición de salida y
termine, sino se incrementaran dichas variables el ciclo continuaría indefinidamente.

La sentencia “do...while” es una variación de la sentencia “while” la única diferencia es


que la sentencia “do...while” realiza una interacción y después analiza la condición.
La sintaxis del bucle “do...while” es la siguiente:

do
{
[sentencias;]
}while(expresión_condición);

Se puede observar en la sintaxis que se basa mucho en el “while”,solo que primero se


ejecuta una interacción después se analiza la condición, si esta es verdadera se realiza
otra interacción pero si es falsa termina el ciclo y continua ejecutándose la siguiente línea
de código.

El siguiente ejemplo muestra como se puede calcular el factorial de un número utilizando


éste ciclo.
<?php
$numero=6;
echo "<BR><B>$numero!</B> = ";
$factorial=1;
do{
echo $numero." x ";
$factorial*=$numero;
$numero--;
}while($numero>1);
echo "1 = <B>$factorial</B>";
?>

En el ejemplo anterior primero se realiza una interacción y después se comienzan a


calcular las multiplicaciones de el numero que va contando con el número que va
almacenando el factorial, y por último se imprime el resultado contenido en la variable
“$factorial”.

La sentencia “break” ya se había utilizado con anterioridad al utilizar la sentencia


condicional “switch” para interrumpir su ejecución. Pero la sentencia “break” también
puede ser utilizada cuando se quiere que se termine la ejecución de un ciclo por una
condición determinada.
También es posible que se desee que llegando a determinada condición dentro de un ciclo
ciertas sentencias dejen de ejecutarse, pero se continúe con las interacciones del ciclo
para lo cual se utiliza la sentencia “continue”

El siguiente ejemplo de código ilustra la utilización de la sentencia “break” para terminar


un ciclo.

<?php
$numero=6;
echo "<BR><B>$numero!</B> = ";
$factorial=1;
while (1){
echo $numero." x ";
$factorial*=$numero;
$numero--;
if ($numero==1){
break;
}
}
echo "1 = <B>$factorial</B>";
?>

El ejemplo anterior calcula el factorial de un número decrementando la variable que lleva


un conteo de el número, y termina cuando la variable “$numero” es igual a 1.
El siguiente ejemplo muestra la utilización de la sentencia “continue” para calcular los
múltiplos de 3 y 5 entre 1 y 1000.

<?php
echo "Múltiplos de 3 y 5 entre 1 y 1000:<BR><BR>";
for($i=1;$i<1000;$i++){
if (($i%3 !== 0)||($i%5 !== 0)) {
continue;
}
echo "$i, ";
}
?>

Para el ejemplo anterior lo que se hace es que si el residuo generado de la división del
número “$i” el cual es el contador entre cinco o entre tres es igual a cero, se hará otra
interacción sin continuar con el código siguiente, pero si son diferentes a cero si continua
con el código siguiente e imprime “$i”.

Cabe señalar que las dos sentencias “break” y “continue” pueden ser utilizadas en
cualquier sentencia de bucle, como “for”, “do...while” o “while”.

2.4. Funciones

La mayor parte del código de un script PHP debe ser ejecutada tan pronto como el script
es interpretado, pero en ocasiones tenemos un mismo script que se repite un número
determinado de veces, por lo tanto es necesario generar una “función” ésta la podremos
mandar llamar desde cualquier parte del código que esté después de que haya sido
inicializada, es simplemente una sección separada del código a la que se le ha dado
nombre.

Las funciones pueden recibir valores desde las sentencias que las mandan llamar. A estos
valores se les denomina parámetros o argumentos y pueden devolver valores. Los
parámetros son utilizados como variables locales dentro de la función.
La sintaxis para declarar una función es la siguiente:

function nombre_funcion([parámetro1])
{
[sentencias;]
}

La palabra reservada “function” se utiliza para especificar un nombre, “nombre_funcion”,


el cual es como un nombre para el conjunto de sentencias entre las llaves.
Entre paréntesis y separados por comas se encuentran los parámetros que recibirán los
valores con los que es llamada la función.
Al declarar una función no se ejecuta hasta que sea llamada desde cualquier parte del
script, para mandar llamar la función únicamente es necesario escribir el nombre de la
función y después, y entre paréntesis los valores de los argumentos.
Hay funciones a las que no se les tiene que enviar parámetros en estas solo se colocan los
paréntesis sin nada adentro al momento de mandarlas llamar.

El siguiente ejemplo muestra como se declara una función sin parámetros.

<?php

function cuentaAtras(){
for($i=10;$i>0;$i--)
echo $i,"...<BR>";
echo "¡ Booooom !";
}

El ejemplo anterior realiza una cuenta regresiva imprimiendo cada número, y cuando
termine la cuenta atrás imprime “¡ Booooom !” .
En el siguiente ejemplo se muestra como mandar llamar a la función anterior.

<?php
cuentaAtras();
?>

En otros lenguajes de programación se utiliza el paso de parámetros por valor y por


referencia, en PHP este tipo de paso de parámetros también es valido.
Para el paso de parámetros por valor se crea una copia de la variable que se envía a la
función por lo tanto la variable original no es afectada. Esta es la función que PHP trae
por defecto.

En el siguiente ejemplo se muestra la declaración de una función con paso de parámetros


por valor:

<?php

function cuentaAtras($inicio){
for($i=$inicio;$i>0;$i--)
echo $i,"...<BR>";
echo "¡ Booooom !";
}

?>

La forma de mandar llamar a la función con paso de parámetros por valor es:
<?php
$contar=5;
cuentaAtras($contar);
?>

En caso de que se quiera que los cambios que se producen en el cuerpo del programa
afecten a la variable que se pasó como argumento en la llamada a la función se utiliza el
paso por referencia. En este caso la función recibe una referencia de la otra variable y no
una copia, por lo tanto los cambios que se realicen sobre el argumento si lo afectan.
Para indicar que los parámetro se pasan por referencia, hay que marcarlos en la definición
de la función, anteponiendo el símbolo ampersand “&”, al nombre del parámetro.

El siguiente ejemplo muestra como declarar una función con paso de parámetros por
referencia, la función realiza una cuenta regresiva el número de veces especificado por un
parámetro.

<?php

$mifinal=0;

function cuentaAtras($inicio, &$fin, $mensaje="¡ Booooom !"){


for(;$inicio>$fin;$inicio--)
echo $inicio,"...<BR>";
$fin=$fin+2;
echo $mensaje;
}
?>

Para mandarla llamar se utiliza el siguiente código:

<?php
// $mifinal vale 0
cuentaAtras(6,$mifinal);
// $mifinal vale 2
?>

Se puede observar como en el código anterior se está omitiendo el valor de una delas
variables, el de la variable “$mensaje” definida en la función, este tipo de parámetros se
les conoce como parámetros por defecto, son a los que si no se les envía un valor toman
otro valor previamente determinado.

En el siguiente código fuente se muestra como el echo de enviar un valor en el parámetro


“$mensaje” no afecta a la función por ser un parámetro por defecto.
<?php
// $mifinal vale 2
cuentaAtras(8,$mifinal,"¡ Despierta !");
// $mifinal vale 4
?>

Las funciones en PHP también pueden regresar valores al igual que en otros lenguajes.
La devolución de valores de una función trabaja igual que la devolución de valores de
una expresión, de manera que el valor devuelto por un función puede ser asignado a una
variable, pero solo se puede devolver un único valor, si se quiere que se regresen valores
múltiples es necesario utilizar un “Array”.

Para poder regresar valores desde una función es necesario que dentro del cuerpo de la
función se utilice la palabra reservada “return” acompañada de una expresión. Hay que
tomar en cuenta que al momento de utilizar la palabra reservada “return” las líneas de
código después de ella se pasaran por alto y el programa volverá a donde se llamó la
función para devolver el valor.

El siguiente ejemplo muestra la declaración de una función que devuelve valores.

<?php
function elMayor($dato1,$dato2,$dato3){
$elmayor=($dato1>$dato2)?$dato1:$dato2;
$elmayor=($elmayor>$dato3)?$elmayor:$dato3;
return $elmayor;
}
?>

El ejemplo anterior calcula el número mayor de tres valores recibidos por una función, y
al final de la función regresa el resultado, el cual es el número mayor.

Para mandar llamar la función anterior podemos hacerlo de la siguiente manera.

<?php
echo "El mayor de 17, 5 y 9 es <BR><H2>".elMayor(17,5,9)."</H2>";
?>

Se pude ver que la función nos regresa automáticamente el valor del número mayor sin
necesidad de igualar la función a una variable, aunque se puede hacer.
2. Sintaxis en PHP

También podría gustarte