06to Semestre-Guia - PHP
06to Semestre-Guia - PHP
06to Semestre-Guia - PHP
1. Introducción
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”.
<?
phpinfo();
?>
Con lo anterior se puede dar por finalizada la instalación de PHP en modo local.
2. Sintaxis en PHP
Para colocar código PHP embebido en HTML es necesario colocar las marcas
delimitadoras del código PHP. Las cuales pueden ser:
<%
Instrucciones PHP
%>
<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.
<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.
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
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.
<?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) ."€";
?>
<?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:
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)
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.
if (condicion)
{ [sentencias] }
<?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”.
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>";
?>
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.
<?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.
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.
$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”.
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.
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.
do
{
[sentencias;]
}while(expresión_condición);
<?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>";
?>
<?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;]
}
<?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();
?>
<?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;
<?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.
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.
<?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.
<?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