Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Esta obra est bajo la licencia Reconocimiento-NoComercial-CompartirIgual 2.5 de Creative Commons. Para ver una
copia de esta licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/ o envie una carta a Creative Commons,
559 Nathan Abbott Way, Stanford, California 94305, USA.
Se permite:
Copiar, distribuir y comunicar pblicamente la obra
Hacer obras derivadas
Bajo las condiciones siguientes:
Debe reconocer y citar al autor original.
No puede utilizar esta obra para fines comerciales.
Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, slo puede
distribuir la obra generada bajo una licencia idntica a sta.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.
Los derechos derivados de usos legtimos u otras limitaciones no se ven afectados por lo anterior.
0. Introduccion
PHP (acrnimo recursivo de "PHP: Hypertext Preprocessor") es un lenguaje de programacin interpretado.
Aunque fue concebido en el tercer trimestre de 1994 por Rasmus Lerdorf no fue hasta el da 8 de Junio de
1995 que fue lanzada la versin 1.0. Se utiliza entre otras cosas para la programacin de pginas web
activas, y se destaca por su capacidad de mezclarse con el cdigo HTML. Aunque su creacin y desarrollo
se da en el mbito de los sistemas libres, bajo la licencia GNU, existe adems un compilador comercial
denominado (Zend Optimizer).
El uso ms extendido del lenguaje PHP, es el de formar parte de una pgina web con el propsito de
agregarle caractersticas dinmicas. Su interpretacin y ejecucin se da en el servidor en el cual se
encuentra almacenada la pgina y el cliente solo recibe el resultado de la ejecucin. Cuando el cliente hace
una peticin al servidor para que le enve una pgina web, enriquecida con cdigo PHP, el servidor
interpretar las instrucciones mezcladas en el cuerpo de la pgina y las sustituir con el resultado de la
ejecucin antes de enviar el resultado a la computadora del cliente. Adems es posible utilizarlo para
generar archivos PDF, Flash o JPG, entre otros.
Los principales usos del PHP son los siguientes:
a) Programacin de pginas web dinmicas, habitualmente en combinacin con el motor de base datos
MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estndar ODBC, lo que
amplia en gran medida sus posibilidades de conexin.
b) Programacin en consola, al estilo de Perl, en Linux, Windows y Macintosh.
c) Creacin de aplicaciones grficas independientes del navegador, por medio de la combinacin de
PHP y GTK (GIMP Tool Kit), que permite desarrollar aplicaciones de escritorio tanto para los
sistemas operativos basados en Unix, como para Windows y Mac OS.
Para, en el caso de la programacin web, el servidor sepa que en una determinada pgina hay cdigo PHP
se deben de cumplir dos normas:
a) Los archivos con programacin PHP deben de tener la extensin php (loquesea.php)
b) Todo algoritmo PHP debe de estar entre los tags <?php y ?> (ver ejemplo 2)
La ultima norma la destaco por su vital importancia ademas de ser necesaria para cualquier implementacion
del PHP. En los ejemplos de este documento se omitirn estos tags a la hora de redactarlos, no de
copilarlos.
$Variable = (int)(18/4);
En el ejemplo 2 se muestra un sencillo ejemplo de uso de variables dentro de una pagina HTML.
Aythami Melin Perdomo
Analista/Programador Especialista PHP
email: aythami.melian@aythami.com
Destacar que en la creacin de paginas en PHP no siempre es necesario colocar cdigo HTML
como en el citado ejemplo, por este motivo, en los ejemplos siguientes no habra HTML Tags.
<HTML>
<HEAD>
<TITLE>Iniciacion a PHP</TITLE>
</HEAD>
<BODY BGCOLOR=white>
<?php
ejemplo 2
1.II Constantes
Una constante es un trozo de memoria que contendr un valor fijo que asignaremos al
principio. En PHP, para definir una constante tenemos la funcin define():
sintaxis
ejemplo
define(CONSTANTE, valor);
define("PI", 3.1515926);
Adems, podremos usar tranquilamente el nombre de esa constante para usar su valor. Por
ejemplo, si queremos calcular el valor de 2PI, podremos escribir $Variable = 2*PI; sin
necesidad de volver a poner el valor de PI, pues lo tenemos definido en una constante.
Por otra parte, antes de usar una constante que no estemos seguros si existe o no, podramos
comprobar mediante alguna funcin que est definida. Para ello tenemos la funcin defined(),
a la que le pasamos como argumento el nombre de la constante, entre comillas, y ella nos dir
si est definida o no lo est.
isset(Variable);
empty(Variable);
Es interesante en ciertas ocasiones verificar si una variable es del tipo que uno espera que sea,
para lo que tenemos la familia de funciones is_XXXXXX(Variable). Esta familia est formada por
las funciones is_array, is_double, is_float, is_int, is_integer, is_object, is_real, is_string;
estas funciones devuelven cierto si la variable pasada como argumento es, en cada una, un
array, o un double, o u float, o un int, o un integer, o un object, o un real, respectivamente. En
caso contrario, devuelven falso.
Por otra parte, PHP nos ofrece unas funciones que convierten una cadena a entero o a real, y
viceversa; estas son:
sintaxis
ejemplo
doubleval(VariableCualesquiera);
intval(VariableCualesquiera);
strval(VariableCualesquiera);
$Var1 = "123.4567ert43";
$Var2 = doubleval($Var1);
$Var3 = intval($Var1);
tendremos en $Var2 almacenado el valor 123.4567, y en $Var3 estar almacenado el valor 123.
Otras funciones de utilidad son estas:
sintaxis
settype(Variable, TipoDato);
gettype(Variable);
unset(Variable);
La primera de ellas nos permite asignar un tipo a una variable. Este tipo ser uno de los
comentados, escrito entre comillas a la hora de llamar a la funcin. Por ejemplo,
ejemplo 3
settype($a, "integer");
if (defined("UnaConstante")) ;
else echo "Constante \"UnaConstante\" no definida<P>";
$a = 12.3;
echo strval($a)."<P>";
$Var1 = "123.4567ert43";
$Var2 = doubleval($Var1);
$Var3 = intval($Var1);
echo "Contenido de \$Var1: ".$Var1."<BR>";
echo "Contenido de \$Var2: ".$Var2."<BR>";
echo "Contenido de \$Var3: ".$Var3."<P>";
if(settype($Var1, "integer")) echo "Conversin exitosa de tipo";
else echo "No se pudo realizar la conversin";
global: Nos dice que la variable es global. En este caso, si se utiliza en una funcin, el
valor que tenga al finalizar la ejecucin se conservar en el programa principal.
static: Nos dice que una variable local conservar su valor en sucesivas llamadas a la
funcin en la que est definida.
Vamos a matizar el uso de variables globales porque es algo que en PHP queda un poco
confuso. Si ests leyendo esto y no sabes nada sobre funciones, te recomiendo que te informes
primero de qu es una funcin y cmo se declaran, porque necesito este concepto.
Declarar una variable fuera de cualquier funcin la convierte en global, mientras que si
declaramos una variable dentro de una funcin, esa variable es local a la funcin. Ahora bien, si
queremos, dentro de una funcin, usar una variable global, tenemos dos posibilidades. La
primera es declarar esa variable global como global dentro de la propia funcin; la segunda,
Aythami Melin Perdomo
Analista/Programador Especialista PHP
email: aythami.melian@aythami.com
usando el array interno $GLOBALS. Vamos a ver un ejemplo de cada una de las opciones para
terminar de aclararlo.
Qu pasara con este trozo de cdigo?
$aGlobal = '1234';
function Imprime_aGlobal()
{
echo $aGlobal;
}
ejemplo 5
Imprime_aGlobal();
Hemos declarado $aGlobal como global, pues est fuera del mbito de cualquier funcin. En
otros lenguajes de programacin, el resultado sera que se imprime el valor '1234', pero en PHP
no. Por qu? Porque en PHP, una funcin nicamente ve a sus variables locales. Como no se
ha declarado previamente, dentro de la funcin Imprime_aGlobal, la variable $aGlobal, sta
est sin definir y, por tanto, no tiene valor alguno. Para que la funcin "vea" a las variables
globales, es cuando tenemos dos opciones: o volvemos a declarar dentro de la funcin la
variable global con el modificador global, o usamos el array $GLOBALS.
Con la primera opcin, el cdigo correcto quedara como sigue:
$aGlobal = '1234';
function Imprime_aGlobal()
{
global $aGlobal;
echo $aGlobal;
}
ejemplo 6
Imprime_aGlobal();
ejemplo 7
function Imprime_aGlobal()
{
echo $GLOBALS["aGlobal"];
}
Imprime_aGlobal();
El array $GLOBALS es mantenido por el propio intrprete de PHP, y aparte de las variables que
nosotros declaremos como globales, tiene muchas otras internas que podeis consultar en el
manual en PDF que podeis descargar de la web oficial de PHP.
ejemplo 8
if(isset($Variable))
echo"S tiene un valor asignado, ".$Variable."<P>";
else
echo"<DIV ALIGN=RIGHT>No tiene un valor asignado</DIV><P>";
$Variable = 12;
echo Ahora le asignamos un valor.;
echo La variable vale: .$Variable.<P>;
Veremos cmo solucionar este problema, pues es posible pasar el valor de las variables entre
pginas, incluyndose a s misma.
ejemplo 9
Ahora he de comentar una nota para resolver una posible ambigedad. Para ello, he de tocar el
tema de los arrays. Si no sabes qu es un array, entonces espera a llegar a ese apartado para
volver aqu. Si ya has trabajado con arrays, puedes seguir leyendo.
Imaginemos que tenemos un array llamado UnArray, y que en la posicin 1 del array tenemos:
ejemplo 12
$UnArray[1] = 'OtroNombre';
Entonces, qu es $$UnArray[1]?. Porque puede ser que OtroNombre sea otro array, con lo que
el intrprete no sabra qu hacer. Para resolver la posible ambigedad, entenderemos que $
{$UnArray[1]} es una variable simple, la variable $OtroNombre, mientras que ${$UnArray}[1] es
lo mismo que escribir $OtroNombre[1], es decir, en este caso $OtroNombre resultara ser otro
array y estamos accediendo a su primer elemento.
Puede que ahora mismo esto no parezca de utilidad pero, creedme, s es til. Conforme
vayamos avanzando, veremos en ejemplos que esto se usa y, adems, es muy til.
confunda), que sabe operar con dos operandos, entonces $a # $b debe entenderse como el
resultado de operar $a con $b segn lo que indique la operacin #. Por ejemplo, + es un
operador que admite dos operandos y tal que el resultado de hacer $a + $b es el resultado de
sumar $a y $b.
El operador ms bsico es el operador binario de asignacin, =. Si escribimos en el cdigo $a =
$b, estamos asignando a $a el contenido de $b en ese momento.
Veamos un ejemplo:
$a = 4;
$b = 3;
ejemplo 13
En el ejemplo podemos ver tambin el uso del operador .. Resulta que cuando estamos
utilizando cadenas, el operador . tiene el significado "concatenacin". Por ejemplo, si
escribimos
sintaxis
ejemplo 14
Operadores Especiales
operador natural
operacion
operador especial
+
*
/
%
Suma
Resta
Producto
Cociente
Mdulo
+=
-=
*=
/=
%=
ejemplo
$b
$b
$b
$b
$b
+=
-=
*=
/=
%=
equivalencia
3
3
3
3
3
$b
$b
$b
$b
$b
=
=
=
=
=
$b
$b
$b
$b
$b
*
/
%
3
3
3
3
3
Adems, heredados tambin del lenguaje C, tenemos los incrementos y decrementos: ++ y --.
Notar que, si tenemos definidas dos variables, por ejemplo $Variable1 y $Variable2, no es lo
mismo hacer esto:
ejemplo 15
$Variable2 = 20;
$Variable1 = $Variable2++;
ejemplo 16
$Variable2 = 20;
$Variable1 = ++$Variable2;
Pues en el primer caso se realiza primero la asignacin y despus el incremento (con lo que
tendremos que $Variable1=20, $Variable2=21); en el segundo caso se realiza primero el
incremento y despus la asignacin, as que ambas valdran lo mismo.
Aythami Melin Perdomo
Analista/Programador Especialista PHP
email: aythami.melian@aythami.com
Por ltimo, dentro de los operadores aritmticos tenemos el operador unario -, que aplicado
delante de una variable, le cambia el signo. A continuacin vemos algunos ejemplos de
operaciones y su resultado:
// Partimos de dos variables '$a' y '$b'
// vamos a hacer operaciones con ellas
$a = 10;
$b = 6;
ejemplo 17
echo
echo
echo
echo
echo
echo
echo
'a =
'a +
'a 'a *
'a /
'a %
'a++
'.$a.', b = '.$b.'<P>';
b = '.($a + $b).'<BR>';
b = '.($a - $b).'<BR>';
b = '.($a * $b).'<BR>';
b = '.($a / $b).'<BR>';
b = '.($a % $b).'<BR>';
: '.($a++).'<P>';
//Aqu ya se ha incrementado $a
==
!=
>
<
>=
<=
===
concepto
igual
distinto
mayor que
menor que
mayor o igual que
menor o igual que
igual en valor y tipo
ejemplo 18
echo
echo
echo
echo
echo
echo
echo
'a
'a
'a
'a
'a
'a
'a
= '.$a.', b = '.$b.'<P>';
== b : '.($a == $b).'<BR>';
!= b : '.($a != $b).'<BR>';
< b : '.($a < $b).'<BR>';
> b : '.($a > $b).'<BR>';
<= b : '.($a <= $b).'<BR>';
>= b : '.($a >= $b).'<P>';
$a = '6';
echo 'Ahora a = '.$a.' (tipo: '.gettype ($a).')<BR>';
echo ' a === b : '.($a === $b).'<P>';
$a = 6;
echo 'Ahora a = '.$a.' (tipo: '.gettype ($a).')<BR>';
echo ' a === b : '.($a === $b);
Los operadores lgicos sirven para componer condiciones ms simples por medio de las reglas
de la y, o y no lgicas. Nos permiten expresar condiciones compuestas de las que queremos
averiguar su valor de verdad.
operador
&&
||
!
xor
(and)
(or)
valor logico
AND
OR
NOT
XOR
Y
O
NO
O EXCLUSIVA
Por ejemplo, si tenemos tres nmeros, podemos querer saber si el primero es a la vez mayor
que el segundo y el tercero, o si es mayor que alguno de ellos, o si no es mayor que ninguno.
Con el adecuado uso de parntesis, podemos agrupar como nos convenga las condiciones.
Veamos un ejemplo:
/* Partimos de tres variables, 'a', 'b' y 'c', y vamos a
realizar distintas operaciones con ellas */
ejemplo 19
$a = 10;
$b = 6;
$c = 11;
echo
echo
echo
echo
echo
'a = ' . $a
'(a > b) &&
'(a > b) &&
'!(a < b) :
'(a > b) ||
' . $c . '<P>';
&& ($a > $c)) . '<BR>';
&& ($a < $c)) . '<BR>';
|| ($a > $c)) . '<BR>';
La primera comparacin nos dice si '$a' es mayor que '$b' y a la vez mayor que ' $c'. La
segunda, si '$a' es mayor que '$b' y a la vez menor que '$c'. La tercera nos dice si no se cumple
que '$a' sea menor que '$b'. La cuarta nos dice si '$a' es mayor que '$b' o bien '$a' es mayor que
'$c'.
if (condicion)
{
Codigo_Si_Se_Cumple
}
else
{
Codigo_Si_No_Se_Cumple
}
Si 'condicion' es evaluado como ' true' (verdadero), entonces se ejecuta el cdigo que hay a
continuacin del 'if', y si es evaluado como ' false' (falso), se ejecuta el cdigo que hay a
continuacin del 'else'. No es necesario poner siempre el ' else', puede ser que slo queramos
ejecutar unas acciones si sucede ALGO, pero nos de igual si ALGO no sucede. Adems, los ' if'
pueden estar anidados segn la complejidad del programa.
Veamos un ejemplo:
ejemplo 20
switch($a)
{
case 1: print("Es
break;
case 2: print("Es
break;
case 3: print("Es
$a--;
break;
default: print("No
break;
}
la opcin 1<BR>");
la opcin 2<BR>");
la opcin 3<BR>");
hay opciones<BR>");
print("Cuenta atrs...<P>");
$a = 10;
for(; $a >= 0; $a--) print("\$a = $a<BR>");
Notar que he puesto la inicializacin fuera del for. De hecho, ni la inicializacin ni la condicin
ni la actualizacin son obligatorias, podramos perfectamente escribir for(;;), pero eso s, hay
que saber que, al no haber condicin, el bucle se ejecutar siempre, por lo que escribir algo tan
simple como for(;;); realizar un bucle infinito.
PHP tambin dispone de las estructuras while y do-while, cuya estructura es como la del
lenguaje C y que exponemos brevemente:
sintaxis
while(Condicion)
{
Codigo_a_Repetir
}
sintaxis
do
{
Codigo_a_Repetir
}while(Condicion);
Podemos romper cualquiera de los bucles si, en un momento dado, quiz bajo una condicin
dada por if, escribimos la sentencia break.
Aythami Melin Perdomo
Analista/Programador Especialista PHP
email: aythami.melian@aythami.com