Upload
valericio-carrasco
View
10.003
Download
42
Embed Size (px)
Citation preview
, conteniendo un encabezado y una porcinde texto: Uso de PHP y
HTML juntosUso de PHP y HTML juntosAqu est su informacin PHP:
. . . Ahora, sta es la clave (puede insertar PHP en cualquier parte
de esta pgina y el motorde PHP del servidor Web lo ejecutar, en
tanto lo contengan las marcas ). Cuandose ejecute PHP, cualquier
cdigo HTML generado se insertar en la pgina, en el lugar de esePHP.
As que, por ejemplo, si desea mostrar la tabla de configuracin PHP
que genera la funcinphpinfo( ), podra llamar a esa funcin de esta
manera en la pgina Web: Uso de PHP y HTML juntosUso de PHP y HTML
juntos 27. 12PHP:Manual de referencia Aqu est su informacin
PHP:
Ahora bien, cuando el motor PHO ejecute esta pgina en el servidor,
el cdigo HTML pasar por el navegador sin cambios y el fragmento de
PHP ser ejecutado. Cualquier cdigo HTML que genere PHP se insertar
tambin en la pgina enviada al navegador. Dicha pgina se conoce como
phphtml.php, que puede ver en la Figura 1-6. Observe que el cdigo
HTML de la pgina aparece donde debe estar as como el cdigo HTML
generado por PHP. Desea dar a sus pginas un aspecto ms profesional?
Puede usar logotipos de PHP, dis- ponibles en
www.php.net/download-logos.php. El uso de estas imgenes
descargables en sus pginas Web, es para conferirles el aspecto
propio de PHP. Por ejemplo, as es como podra emplear la imagen
php-med-trans-light.gif en una pgina llamada phpimage.php (coloque
el archivo de imagen en el mismo directorio que phpimage.php en su
servidor): FIGURA 1-6 Combinacin de PHP y HTML 28. Captulo 1:
Fundamentos de PHP 13 Uso de PHP y HTML juntos Uso de PHP y HTML
juntossta es su informacin de PHP:
Y ver los resultados el logotipo se encuentra en la esquina
inferior derecha en laFigura 1-7.FIGURA 1-7 Uso de logotipos de PHP
29. 14 PHP: Manual de referencia Impresin de textoDe acuerdo, qu
tal si ahora imprimimos texto con PHP? Ya ha visto que puede
colocar textoen sus archivos PHP de manera muy similar a como lo
hara en una pgina HTML, como aqu,donde se coloca un encabezado y
texto en una pgina: Uso de PHP y HTML juntosUso de PHP y HTML
juntossta es su informacin de PHP: . . . Esto es correcto pero,
evidentemente, tambin esttico. El texto que se muestra no va
acambiar, sin importar lo que suceda en la parte de cdigo de su
pgina, y eso es claramenteinaceptable. Qu pasa si desea presentar
resultados de una bsqueda en una base de datos oreservacin de
boletos? Necesita insertar texto en la pgina manejando PHP y, para
hacerlo, se emplea la instruccinecho de PHP. Por ejemplo, parahacer
ecodel textoBienvenido a PHPen la pgina Web devueltaal navegador,
se podra agregar esta lnea de cdigo a una nueva pgina,
phpdisplaytext.php: Mostrando texto de PHP Mostrando texto de
PHPEsto es lo que PHP tiene que decir:
Observe esta pgina, phpdisplaytext.php, en su navegador ahora, como
se muestra en laFigura 1-8. Ver el texto que PHP insert en la pgina
de la figura (nada mal). 30. Captulo 1: Fundamentos de PHP15FIGURA
1-8 Cmo mostrar texto desde PHPPuede pasar texto para mostrar la
instruccin echo, empleando comillas sencillas o dobles: echo
"Bienvenido a PHP."; echo Bienvenido a PHP.;Hay una diferencia
sutil entre estas dos formas de pasar texto, que ver en el
siguientecaptulo. Tambin puede pasar nmeros directamente para hacer
eco si lo desea, sin recurrira comillas: echo 1234.5678;Y puede
pasar texto entre parntesis para hacer eco tambin: echo
("Bienvenido a PHP.");El paso de datos a funciones tambin se
realiza de esta forma: coloque los datos dondedesee que la funcin
opere, entre parntesis. Hay muchas funciones integradas en PHP;
sinembargo, echo, tcnicamente hablando, no es una funcin es una
caracterstica integrada dellenguaje PHP. 31. 16PHP:Manual de
referencia Impresin de HTML Nunca olvide que cuando trabaja con PHP
en lnea, interacta con el usuario a travs de un navegador. Eso
significa que el texto enviado por usted de vuelta al navegador se
interpretar como HTML, no un texto simple. Eso da tambin la
posibilidad de utilizar HTML para dar for- mato a su texto, tal y
como se indica aqu en una nueva muestra, phpdisplayhtml.php:
Mostrando texto de PHP Mostrando texto de PHP Esto es lo que PHP
tiene que decir:
Puede ver esta pgina en la Figura 1-9 incluyendo el formato en
HTML.FIGURA 1-9 Cmo mostrar HTML desde PHP 32. Captulo
1:Fundamentos de PHP 17As que cuando quiera pasar a la siguiente
lnea en su resultado, deber insertar el comandoHTML correcto,
, en el texto que se muestra.Mayor poder de echoTambin puede
ejecutar PHP desde la lnea de comandos, simplemente utilizando el
comandophp. Esto es lo que vera ejecutando el archivo
phpdisplayhtml.php desde la lnea de comandos(recuerde que %
representa un smbolo de sistema genrico en este libro):%php
phpdisplayhtml.php Mostrando texto de PHPMostrando texto de PHPEsto
es lo que PHP tiene que decir:
Bienvenido
a
PHP.Observe que el cdigo HTML no se interpret como HTML; se
imprimi como textosimple. Si, en este caso, desea pasar a la lnea
siguiente, debe utilizar el carcter de control n, quePHP
interpretar como carcter de lnea nueva (ste mostrar las tres
palabras en sus propiaslneas):echo "Bienvenidon";echo "an";echo
"PHP.";ste es un ejemplo de los caracteres de control disponibles
en PHP:n Carcter de lnea nuevar Cambio de lneat Tabulador Muestra
una $ Muestra un signo $" Muestra una"0 a 777 Muestra un carcter
correspondiente a un cdigo hexadecimal (de base 8)x0 a xFF Muestra
un carcter correspondiente a un cdigo hexadecimal (de base 16) 33.
18PHP:Manual de referenciaPuede imprimir un carcter sensible como
una comilla ("), sin decir a PHP que ha llegado al final de su
texto (lo que una marca " hara en su defecto). Para esto, use " en
su lugar de esta forma: echo "l dijo, "Me gusta el helado."";A esto
se le conoce como escapar de la comilla, para que PHP la muestre en
lugar de tratarla como marca al final de una cadena de texto.Si lo
desea, puede dividir una cadena entrecomillada larga en varias
lneas en su escrito,para conservar los cambios de lnea si imprime
desde la lnea de comando. (Si imprime enuna pgina Web, los cambios
de lnea sern pasados por alto): Tambin puede separar los elementos
que desea imprimir con comas, de esta forma: echo "Bienvenido",
"a", "PHP."; Todos los elementos que imprima de esta forma
aparecern en la impresin, uno detrs del otro: BienvenidoaPHP. Si
desea espacios entre las palabras, haga algo como esto: echo
"Bienvenido ", "a ", "PHP."; Esto producira Bienvenido a PHP.
Tambin puede ensamblar cadenas de texto en una sola utilizando un
punto (.). ste es un ejemplo: echo "Bienvenido " . "a " . "PHP.";En
este caso, PHP toma su expresin "Bienvenido" . "a " . "PHP." y la
ensambla junta (a esto se le llama concatenacin) en una cadena,
"Bienvenido a PHP."; luego pasa esa cadena a la instruccin
echo.Adems, existe otra forma de mostrar texto: puede usar tambin
la instruccin print de PHP con la misma sintaxis, as: print
Bienvenido a PHP.;. Cul es la diferencia entre print y echo? No
mucho; print es ms una funcin de PHP (vea el captulo 5), de modo
que produce un 34. Captulo 1: Fundamentos de PHP 19valor siempre
iniciado en 1. Para la mayora de los fines, echo y print funcionan
igual en PHP, demodo que el uso de cada una depender de usted.Uso
de documentos here de PHPDe hecho, hay otra forma de mostrar texto
que debe conocer y consiste en usar documentoshere de PHP. Un
documento here es tan slo texto inserto directamente en una pgina
PHP,entre dos instancias del mismo token; ese token es una palabra,
como END. Luego puede mos-trar el texto en un documento here
utilizando la sintaxis echo Esto es lo que obtendra al ejecutar la
instruccin a travs del CLI con la opcin l:%php -l echoer.phpPHP
Parse error: syntax error, unexpected T_STRING, expecting , or ; in
echoer.php on line 2Errors parsing echoer.phpEs el mismo error que
obtendra de PHP en lnea (php-cgi). Debe saber que el resultado
producido por CLI difiere de php-cgi; por ejemplo, en CLI no
seincluyen encabezados HTTP estndar que imprime php-cgi al devolver
el resultado al navegador.Y el CLI imprime los mensajes de error en
texto simple, no en cdigo HTML que dar php-cgi. 39. 24 PHP: Manual
de referencia Tambin vale la pena observar que en Linux y Unix,
pueden ejecutarse scripts PHP con sloescribir el nombre del script
en la lnea de comandos, si indica dnde encontrar PHP con unalnea
que inicia con los caracteres #!:#! /usr/bin/php Adicin de
comentarios a cdigo de PHPAl igual que virtualmente todos los
lenguajes de programacin, se pueden agregar comenta-rios al cdigo
PHP. Los comentarios son anotaciones agregadas por usted para hacer
su cdigolegible y omitido por PHP. Es importante agregar
comentarios si el cdigo es extenso, ya que esposible que usted o
alguien ms revise el cdigo tiempo despus y no tenga la menor ideade
para qu sirve. Puede reconstruir laboriosamente lo que sucede, pero
por qu no agregarcomentarios que faciliten el proceso? De esa forma
puede descifrar su viejo cdigo (o de alguienms) con facilidad.
Existen tres tipos de comentarios en PHP. El primer tipo de
comentario permite crearcomentarios en diferentes lneas, que
comiencen con /* y terminen con */, de esta forma:Eso es genial si
tiene un comentario extenso que ocupar mltiples lneas para
mostrarse.Sin embargo, algo que vuelve loco a PHP es que el usuario
anide comentarios, que comienzancon /* y terminan con */, de esta
forma: PHP busca */ para marcar el final del comentario y si anida
comentarios dentro de otros,encontrar */ antes del final real del
comentario. Los otros dos tipos de comentarios son de una lnea.
Este tipo de comentarios slo seextienden a una lnea, no como los
del tipo multilneas /*...*/. El primer tipo de comentario deuna
lnea comienza con //: 40. Captulo 1: Fundamentos de PHP25 Y el
siguiente tipo de comentario en una lnea funciona de la misma
forma, salvo quecomienza con el signo #: De hecho, PHP pasa por
alto todo despus de la doble barra // o el signo #; de ese
modotambin puede colocar comentarios de un rengln al final de las
lneas, despus de cdigo PHPvlido como ste:Puede utilizar, incluso,
comentarios en una lnea para hacer bloques de comentarios en
sucdigo PHP, similares a comentarios multilneas, como ste: Desea
algo que destaque realmente, en trminos de comentarios? Pruebe algo
como esto: No es necesariamente bonito, pero capta su atencin.
Probablemente descubrir que utiliza ms comentarios en una lnea que
en mltipleslneas. Los comentarios en una lnea son ms fciles de
escribir, pues no tiene que llevar el con-trol del punto final del
comentario. Sin embargo, los comentarios en mltiples lneas son
tilestambin en PHP, y los ver con frecuencia en la definicin de
funciones de PHP, explicando qudatos pasa a la funcin y cules
recibe de vuelta. 41. 26 PHP: Manual de referencia Trabajo con
variablesHasta este punto, el texto producido por nuestros scripts
ha sido esttico. En este caso, porejemplo, el script muestra slo el
texto Bienvenido a PHP.:Eso es texto bastante esttico. Puede hacer
aadiduras con el operador de adicin de PHP,+, para agregar nmeros
de esta forma: sta es la respuesta La respuestaLa primera vez que
ejecuta esto se muestra el mensaje sta es la respuesta: 14. Y la
segundavez que se ejecuta, vuelve a mostrar el mensaje sta es la
respuesta: 14.As que es lo mismose vuelve a obtener texto esttico.
Esto est bien hasta donde llega, pero no muy lejos. Si slo deseara
texto esttico, podraquedarse con HTML. Es ah donde las variables
entran en accin. Como en cualquier otrolenguaje de programacin, las
variables de PHP son ubicaciones en la memoria con nombresasignados
alojando datos. Suponga por ejemplo que deseara llevar el control
del nmero deusuarios de su sitio en tres ciudades Pars, Londres y
Acapulco, pero el nmero de usuariosen cada lugar no se conoce hasta
ejecutar el programa. Las variables llegan al rescate. Con las
variables, usted podra almacenar el nmero de usuarios en la
variable de cadaciudad al momento de la ejecucin. En PHP, los
nombres de variables comienzan con un signo$, seguido de un nombre
y ese nombre debe comenzar con una letra o lnea de subrayado, nocon
un nmero. Por ejemplo, para almacenar el nmero de usuarios en Pars,
podra tener unavariable llamada $pars; el nmero de usuarios en
Londres y Acapulco podra estar en las varia-bles $londres y
$acapulco. Podra colocar datos en esas variables al momento de la
ejecucin ysumar los tres elementos de datos, tambin al momento de
la ejecucin. La suma se vera as: sta es la respuesta La respuesta
42. Captulo 1: Fundamentos de PHP27 Al momento de la ejecucin, el
valor dentro de cada variable se sustituye por esa variable; de
modo que si $pars = 1, $londres = 5 y $acapulco = 8, PHP podra ver
la lnea anterior de cdigo PHP de esta forma: Y entonces obtiene sta
es la respuesta: 14. (la misma que antes). Pero ahora supongamos
que las tres variables alojaran 2, 4 y 6 al momento de la ejecucin,
con lo que obtendra Entonces obtiene sta es la respuesta: 12. lo
que significa que nuestro mensaje ya no es esttico. sa es la razn
por la que se llaman variables los datos que contienen pueden
variar. se es el primer paso para trabajar con datos en PHP: usar
variables para almacenar datos. As que, cmo almacenar exactamente
datos en variables?Almacenaje de datos en variables En PHP, como
otros lenguajes, puede asignar datos a variables. PHP le permite
almacenar nmeros y texto en dichas variables, como en estos
ejemplos: $pi = 3.1415926535; $nmero_de_Saturnos = 1; $nombre =
"Klostix Daz"; $pez = "bacalao"; A diferencia de otros lenguajes en
lnea, como Java, PHP no insiste en que usted cree dife- rentes
tipos de variables para cada dato. sta es la forma en que tales
variables podran crearse en Java: double pi = 3.1415926535; int
nmero_de_Saturnos = 1; String nombre = "Klostix Daz"; String pez =
"bacalao"; PHP puede almacenar todo tipo de datos en variables y no
tiene que crear diferentes tipos de variables para almacenar esos
datos, que facilita mucho las cosas. Por otra parte, en virtud de
la arquitectura interna de las computadoras, PHP almacena
internamente sus datos en diferentes formatos y a veces es
importante saber cules son esos formatos internos (hablaremos ms de
esto despus). 43. 28 PHP:Manual de referenciaObserve el uso del
signo =, se utiliza para asignar datos a variables. El signo = es
el operador deasignacin en PHP, que le permite encuadrar datos a
variables. (De hecho, existen otros operadoresde asignacin, como se
ver en el siguiente captulo; pero el signo = es el principal.) Por
ejemplo,para inicializar el nmero de hamburguesas con queso de su
cdigo en 1, usted hara esto:Luego podra transmitir el nmero actual
de hamburguesas con queso al navegador:Ahora podra cambiar el nmero
almacenado en la variable $hamburguesasconqueso con-forme se
sumaran ms hamburguesas en lnea. Por ejemplo, si tiene tres
hamburguesas ms,podra utilizar el operador + de PHP para sumarlas
al nmero actual almacenado en $hambur-guesasconqueso de esta forma:
Ahora puede mostrar el nuevo nmero de hamburguesas con queso en
este ejemplo,phpvariables.php, de la siguiente forma: Almacenar
datos en variables Almacenar datos en variables 44. Captulo 1:
Fundamentos de PHP 29 Puede ver phpvariables.php en la Figura 1-11
donde, como apreciar, el valor almacenado en $hamburguesasconqueso
cambi exitosamente. En algunos lenguajes, como Java, tienen que
declararse variables, dando su tipo y nombre, antes de usarlas,
como double pi; int nmero_de_Saturnos = 1; En PHP no tiene que
declarar variables antes de usarlas otra forma en que PHP ahorra
tiempo y esfuerzo. Todo lo que debe hacer antes de usar una
variable en PHP, consiste en asignar valor cuando lo haga, PHP
crear esa variable por usted y almacenar sus datos FIGURA 1-11 Cmo
poner las variables a trabajar en PHP 45. 30PHP: Manual de
referencia en ella. Sin embargo, eso significa que debe asignar
datos a una variable antes de leer el valor de la misma. Por
ejemplo, si intentara leer el nmero de hamburguesas con queso sin
antes inicializarlo, obtendra el error en la Figura 1-12. ste es el
mensaje de error: PHP Notice: Undefined variable:
hamburguesasconqueso in C:Inetpubwwwrootch01 phpvariables.php on
line 14 PHP Notice: Undefined variable: hamburguesasconqueso in
C:Inetpubwwwrootch01phpvariables.php on line 16 Desea anular una
variable? Resulta difcil pensar en aquellas ocasiones que usted
podra ya no desear el uso de una variable, pero en realidad puede
anular variables en PHP. Tan slo use un cdigo como ste: unset
($hamburguesasconqueso);Despus de ejecutar esta instruccin de PHP,
la variable $hamburguesasconqueso ya no existir ni obtendra un
error, si intentara leer el valor que sta contena. FIGURA 1-12
Cuando olvida inicializar una variable en PHP 46. Captulo 1:
Fundamentos de PHP 31Interpolacin de cadenas Puede mostrar el valor
de una variable como sta, desde luego: En este caso, usted ha
colocado explcitamente $hamburguesasconqueso en la lista de ele-
mentos cuyos valores desea mostrar. Por otra parte, hay una forma
abreviada de hacer esto en PHP que debe conocer, llamada
interpolacin de cadenas.Cuando usted usa la interpolacin, slo tiene
que colocar la variable cuyo valor desea inser- tar, dentro de una
cadena de texto con comillas dobles (no con comillas sencillas).
Por ejemplo, podra convertir el ejemplo phpvariables.php anterior
para usar la interpolacin de cadenas, en un nuevo ejemplo llamado
phpinterpolation.php, de esta forma: Uso de la interpolacin de
cadenas Uso de la interpolacin de cadenas Observe cmo funciona
esto: PHP ve el nombre de una variable, $hamburguesasconqueso,
dentro de una cadena de texto con comillas dobles:echo "Nmero
actual de hamburguesas con queso: $hamburguesasconqueso
"; Eso significa que PHP colocar de inmediato el valor alojado en
$hamburguesasconqueso en la cadena, de esta forma:echo "Nmero
actual de hamburguesas con queso: 1
"; Es as como funciona la interpolacin de cadenas; PHP sustituir el
valor de una variable por aquella en una cadena de texto con
comillas dobles. Puede ver phpinterpolation.php en accin en la
Figura 1-13. La interpolacin de cadenas es un atajo rpido que
permite colocar el valor de una variable en una cadena con comillas
dobles (no con comillas sencillas), pero hay algo que debe saber
47. 32PHP: Manual de referencia FIGURA 1-13 Uso de la interpolacin
de cadenas en PHP aqu: necesita rodear el nombre de la variable con
espacios o puntuacin simple. Si coloca el nombre de la variable
directamente junto al texto, podra confundir a PHP. Por ejemplo, si
la variable $tipo aloja el texto balon y desea insertar el texto
baloncesto en texto con comillas dobles, podra verse tentado a
utilizar la expresin $tipocesto. Y eso no funcionar; ver el aviso
PHP Notice: Undefined variable:tipocesto en C:phpwrong.php on line
8 La solucin consiste en encerrar el nombre de la variable entre
llaves, como stos: {$tipo}, creando la expresin ${tipo}cesto, como
se puede apreciar en phpadjoininginterpolation.php: Uso de
interpolacin de variables con palabras adjuntas Uso de interpolacin
de variables con palabras adjuntas 48. Captulo 1: Fundamentos de
PHP33 FIGURA 1-14 Uso de la interpolacin de cadenas con texto
adjunto en PHP Ahora funciona, como se ve en la Figura 1-14. La
interpolacin de cadenas es til, pero podra no utilizarla todo el
tiempo. Por ejemplo, qu sucede si tiene la cadena de texto:
Conseguimos muy buen precio en la comida fue $barato incluso para
Jessica.?). As como se plantea, confundir a PHP, que intentar
hallar una variable llamada $barato y dar un error cuando no pueda
encontrarla. Existen dos soluciones a este problema; primero, podra
usar comillas sencillas en vez de dobles, as: Conseguimos muy buen
precio en la comida fue $barato incluso para Jessica.. Cuando se
utilizan comillas sencillas, PHP no aplica la interpolacin de
cadenas. La segunda forma de evitar interpolacin cuando no la desea
pero an pretende usar comillas dobles consiste en anular el nombre
de la variable colocando antes del signo $ una diagonal inversa (),
que da como resultado: Conseguimos muy buen precio en la comida fue
$barato incluso para Jessica.. PHP ver el smbolo $ y lo convertir
en un smbolo $ inocuo, como debe ser aqu, no el inicio de un nombre
de variable. Eso es interpolacin de cadenas si desea colocar el
valor de una variable en una cadena con comillas dobles, sta es la
herramienta para usted.Creacin de variables alternas Mientras
analizamos las variables, tambin vale la pena analizar variables
alternas. PHP permite stas para alojar el nombre de otra variable.
49. 34PHP: Manual de referenciaAs es como funciona. Podra tener una
variable llamada $hamburguesasconqueso, a la que podra dar un valor
de 1: Luego podra crear una nueva variable, $tipodehamburguesa, que
aloje el nombre de la pri- mera variable,hamburguesasconqueso: Sabe
que puede mostrar el valor en $hamburguesasconqueso de esta forma:
Resulta que tambin puede tener acceso al valor en
$hamburguesasconqueso mediante la variable alterna,
$tipodehamburguesa, de esta forma: Observe la sintaxis como
$tipodehamburguesa contiene el texto hamburguesasconqueso, la
expresin $$tipodehamburguesa es equivalente a
$hamburguesasconqueso. Desea utilizar variables alternas con
interpolacin de cadenas? PHP tendr problemas con una expresin como
$$tipodehamburguesa entre comillas dobles; de modo que la forma de
corregir eso consiste en utilizar phpvariablevariables.php: 50.
Captulo 1: Fundamentos de PHP35 Uso de variables alternas Uso de
variables alternas Si no hubiera usado los llaves en este ejemplo,
habra obtenido el siguiente resultado: Nmero de hamburguesas con
queso: 1 Ese nmero de nuevo: 1 Una vez ms: $hamburguesasconqueso
Ahora mismo, las variables alternas podran parecer poco ms que una
curiosidad, pero tienen sus usos cuando se trabaja con ciclos y
matrices, que se analizan en el captulo 3.Creacin de constantes A
veces no desea que un elemento de datos sea variable. Por ejemplo,
el valor de pi, 3.1415926535, no debe cambiar. Si creara una
variable llamada $pi, algo en su cdigo podra asignar un nuevo valor
a $pi por error. Lo que debe hacer es crear una constante, cuyo
valor no se pueda modificar.En PHP, una constante se crea con la
funcin define, pasando a define el nombre de la cons- tante que
desea crear y el valor que quiere asignarle, como define (PI,
3.1415926535). Eso crea una constante llamada PI distinguiendo
entre maysculas y minsculas: PI no es lo mismo que pi (si quiere
que una constante no distinga entre maysculas y minsculas, puede
pasar un valor TRUE como ste: define (PI, 3.1415926535, TRUE)).
Observe que esto simplemente crea una constante llamada pi no se
utiliza un signo $ frente al nombre, porque la convertira en
variable.As es como funciona la creacin de una constante en un
archivo de ejemplo phpconstant.php: Definicin de constantes 51.
36PHP:Manual de referencia Definicin de constantes Y puede ver los
resultados de la Figura 1-15, donde la constante se cre en
realidad. As, sa es la idea tras las constantes (si intenta alterar
el valor de esta constante, pi (por ejemplo, pi = 3.14), PHP no lo
aceptar, ni siquiera iniciar el script). Esto es algo de tomar en
cuenta: como a las constantes no se les antepone un prefijo $, PHP
se puede confundir si utiliza una constante con el mismo nombre de
una de las palabras clave reservadas a PHP. Estas palabras clave
aparecen en la Tabla 1-1. Asimismo, existen varias constantes
predefinidas disponibles para sus scripts. Utilizaremos estas
constantes conforme las necesitemos; ste es un ejemplo: _LINE_ El
nmero de lnea actual del archivo _FILE_ La ruta completa y el
nombre del archivo _FUNCTION_ El nombre de la funcin _CLASS_ El
nombre de la clase _METHOD_ Nombre del mtodo de clase PHP_VERSION
Versin de PHP _CLASS__FILE__FUNCTION_ _LINE_ _METHOD_ and arrayas
breakcasecfunctionclass constcontinuedeclaredefault diedoecho else
elseif empty enddeclare endfor endforeach endif endswitchendwhile
eval exception exit extends forforeach function global if include
include_once isset list new old_function or php_user_filterprint
requirerequire_once return staticswitch unset usevar whilexor TABLA
1-1Palabras clave de PHP 52. Captulo 1: Fundamentos de PHP37 FIGURA
1-15 Definicin de constantes PHP_OS El sistema operativo
DEFAULT_INCLUDE_PATH Donde PHP buscar lo que necesita Por ejemplo,
el uso de echo_LINE_ en la ubicacin especfica de un script mostrar
la lnea actual en ejecucin.Entendamos los tipos de datos internos
de PHP PHP le hace un gran favor al permitirle almacenar datos sin
especificar el tipo. En otros lengua- jes necesita establecer el
formato exacto de los datos de cada variable, pero PHP se encarga
de eso por usted.Sin embargo, a veces tiene que conocer los tipos
de datos internos usados por PHP, como ver a continuacin. stos son
esos tipos internos: boolean Aloja valores verdaderos/falsos
integer Aloja nmeros como -1, 0, 5, etctera. float Aloja nmeros de
punto flotante (dobles), como 3.14159 o 2.7128 string Aloja texto
como Bienvenido a PHP. array Aloja matrices de elementos de datos
object Aloja objetos de programacin resource Aloja un recurso de
datos NULL Aloja un valor NULL (nulo) 53. 38PHP: Manual de
referencia PHP suele manejar los tipos de sus datos automticamente.
Por ejemplo, esta instruccin crea una variable alojando una cadena:
$datos = "Son muchas hamburguesas con queso las que tiene ah.";
Esta instruccin crea una variable que aloja un nmero flotante
internamente: $datos = 123.456; ste es un ejemplo que crea una
variable booleana (TRUE/FALSE, VERDADERO/FALSO): $datos = TRUE;Todo
eso est bien; el problema se presenta cuando mezcla tipos de datos.
Por ejemplo, si comienza con una variable simple inicializada en 0
entonces eso crea una variable que contiene la cadena 0. Ahora
bien, qu sucede si suma 1 al valor de esa variable?: En este caso,
PHP hace lo mejor que puede; sumar el nmero 1 a la cadena 0 deja
$varia- ble alojando el entero 1. Qu sucede si suma un valor de
punto flotante? Ahora $variable aloja un valor flotante de 2.2. Qu
pasa si suma 3 + 8 hamburguesas con queso? De nueva cuenta, PHP har
su mejor esfuerzo, sumando 3 + 8 y dejando el resultado, un valor
entero de 11, como resultado: 54. Captulo 1: Fundamentos de PHP39
Debe evitar la confianza en estas reglas. Estn integradas en PHP,
pero confiar en ellas podra darle un resultado equivocado. Si desea
convertir un valor de un tipo de datos a otro, puede usar
explcitamente un tipo de datos combinado. Los tipos de datos
combinados se ponen entre parntesis; por ejemplo: $entero =
(integer) $datos; convierte explcitamente el valor de $datos a
entero. El siguiente convierte el valor en $datos en un valor
$flotante: $flotante = (float) $datos; Cuando se hace la conversin
al tipo booleano, estos valores se consideran FALSE (falsos): El
booleano FALSE El entero 0 El flotante 0 La cadena vaca y la cadena
0 Una matriz con cero elementos Un objeto sin variables miembros Un
tipo especial NULL (incluyendo valores no inicializados) Cualquier
otro valor se considera TRUE (verdadero).Cuando se convierte al
tipo entero, stas son las reglas: Un booleano FALSE producir 0
(cero) y el booleano TRUE producir 1 (uno). Los valores de tipo
flotante se redondearn a cero. Cuando se convierten datos al tipo
flotante, PHP convierte primero los datos a entero y luego a
flotante. Tambin puede convertir el tipo de cadena a tipos
numricos, pero es un poco enredado vea el captulo 3 para conocer
los detalles. Asimismo, PHP incluye funciones especiales que le
permiten comprobar el formato interno de los datos is_int( ),
is_float( ), is_array( ), etctera; por ejemplo, si pasa una
variable alma- cenada por PHP como entero internamente en is_int(
), esa funcin producir un valor TRUE en el siguiente captulo
ahondaremos en este tema. 55. CAPTULO 2Operadores y control de
flujoE l captulo 1 fue una introduccin a PHP y este captulo
profundiza ms en el tema. Todo lo que ver en este captulo es una
habilidad esencial para el resto del libro.En este captulo se
analizan operadores de PHP que usted emplear para manipulardatos;
sta es parte esencial de los fundamentos de PHP que necesitar. Por
ejemplo, la expre-sin $variable + 8, suma 8 al valor en $variable.
La expresin $variable * 4, multiplica el valor de$variable por 4.
Incluso si ha visto operadores en otros lenguajes, al menos revise
este material,pues encontrar contenido exclusivo de PHP. Tambin ver
todo sobre control del flujo en este captulo. ste le permite tomar
decisionesen su cdigo. Va a tener un da de campo? Puede decidir
basndose en la temperatura ambienteactual, segn cdigo PHP. Tiene
suficiente inventario para surtir pedidos de sus clientes? Denuevo,
es cuestin de control del flujo. En PHP, como otros lenguajes, la
instruccin principal decontrol del flujo es la instruccin if, que
permite tomar una decisin y ejecutar cierto cdigo, si esadecisin se
orienta hacia un lado y cdigo alternativo si la decisin apunta
hacia el otro. Adems de instrucciones como if, tambin analizaremos
ciclos. Los ciclos son fundamen-tales para PHP, como para muchos
lenguajes de programacin; permiten manipular grandesconjuntos de
datos recorrindolos en ciclos, un elemento de datos a la vez. Las
computadorasfueron creadas para realizar tareas repetitivas como
stas, de modo que los ciclos tienen unlugar preponderante en
PHP.Operadores matemticos de PHPComenzaremos con los operadores ms
bsicos (los matemticos), que son stos: + Suma dos nmeros Resta un
nmero de otro * Multiplica dos nmeros / Divide un nmero entre otro
%Devuelve el residuo, cuando un nmero se divide entre otro
(mdulo)41 56. 42PHP: Manual de referencia Estos operadores
funcionan como sera de esperarse: para sumar dos valores se utiliza
el operador +, de esta forma: a + b. Para restar b de a, es a b.
Bueno, es momento de escribir algo de cdigo. ste es un ejemplo,
phpmathoperators.php, que pone a trabajar los operado- res
matemticos: Uso de los operadores matemticos Uso de los operadores
matemticos Puede ver resultados en la Figura 2-1, donde los
operadores matemticos ejecutan sus funciones. FIGURA 2-1 Operadores
matemticos de PHP en accin 57. Captulo 2: Operadores y control de
flujo 43Este ejemplo demuestra el uso de operadores matemticos con
dos nmeros, 7 y 2, perodesde luego puede usar variables
tambin:$resultado = $operando1 + $operando2;$resultado = $operando1
- $operando2;$resultado = $operando1 * $operando2;$resultado =
$operando1 / $operando2;$resultado = $operando1 % $operando2; Adems
de los operadores matemticos integrados, PHP tambin cuenta con
varias funcio-nes matemticas y, mientras analizamos los operadores
matemticos, bien vale la pena dar unvistazo a las funciones
matemticas. stas son: abs Valor absoluto acos Arco coseno acosh
Coseno hiperblico inverso asin Arco seno asinh Seno hiperblico
inverso atan2 Arco tangente de dos variables atan Arco tangente
atanh Tangente hiperblica inversa base_convert Convierte un nmero
entre bases bindec Convierte de binario a decimal ceil Redondea
fracciones hacia arriba cos Coseno decbin Convierte de decimal a
binario dechex Convierte de decimal a hexadecimal decoct Convierte
de decimal a octal deg2rad Convierte el nmero en grandes al
equivalente en radianes exp Calcula el exponente de e expm1
Devuelve exp(nmero) 1 floor Redondea fracciones hacia abajo fmod
Devuelve el residuo de punto flotante de la divisin de los
argumentos getrandmax Muestra el mayor valor aleatorio posible
hexdec Convierte de hexadecimal a decimal hypot Devuelve
sqrt(num1*num1 + num2+num2) is_finite Determina si un valor es un
nmero finito vlido is_infinite Determina si un valor es infinito
is_nan Determina si un valor no es nmero 58. 44PHP: Manual de
referencia lcg_value Generador de congruencia lineal combinado
log10 Logaritmo de base 10 log1p Devuelve log(1 + nmero) log
Devuelve el logaritmo naturalmax Encuentra el valor ms altomin
Encuentra el valor ms bajomt_getrandmax Muestra el mayor valor
aleatorio posiblemt_rand Genera un mejor valor aleatoriomt_srand
Siembra el mejor generador de nmeros aleatoriosoctdec Convierte de
octal a decimalpi Obtiene el valor de pipow Expresin
exponencialrad2deg Convierte el nmero de radianes a un equivalente
en gradosrand Genera un entero aleatorioround Redondea un nmero
flotantesin Senosinh Seno hiperblicosqrt Raz cuadradasrand Siembra
el generador de nmeros aleatoriostan Tangentetanh Tangente
hiperblica ste es un ejemplo, phpmathfunctions.php, que pone a
trabajar algunas de estas funciones. Por ejemplo, usted podra
querer la tangente de 45 y utilizara la funcin tan para ello. La
fun- cin tan espera que su operando est en radianes; de modo que
primero debe convertir 45 a radianes, que puede hacer con la funcin
deg2rad: Qu tal si calculamos ahora un exponente? Puede calcular 4
elevado a la potencia 3, es decir 43, utilizando la funcin pow: 59.
Captulo 2: Operadores y control de flujo 45Puede redondear nmeros
hacia abajo utilizando la funcin floor o bien, usando la
funcinceil. En este ejemplo, redondeamos pi hacia abajo: Qu tal un
poco de matemticas hexadecimales? La funcin dechex convierte
valores deci-males a hexadecimales de esta forma: Y puede obtener
el arco tangente de 1 con la funcin atan, convirtiendo la respuesta
enradianes a grados en phpmathfunctions.php de esta forma: Uso de
las funciones matemticas Uso de las funciones matemticasPuede ver
phpmathfunctions.php en la Figura 2-2, funcionando segn lo
planeado. 60. 46 PHP:Manual de referenciaFIGURA 2-2 Funciones
matemticas de PHP en accin Trabajando con los operadores de
asignacinEl operador de asignacin principal es =, que simplemente
asigna un valor, como ste, almace-nando el valor 99 en
$botellas_de_cerveza_en_la_pared:$botellas_de_cerveza_en_la_pared =
99;Esto es algo ms que debe saber acerca del operador de asignacin:
puede hacer mltiplesasignaciones en la misma lnea, de esta
forma:Esta lnea de cdigo asigna el valor 3 a cada una de las
variables $a, $b, $c y $d. Es bastante til.Ahora d un vistazo a
estas lneas de cdigo: 61. Captulo 2: Operadores y control de flujo
47La idea aqu es que asignamos un valor de 3 a la variable $a y
luego sumamos 6 a ese valor,para terminar con 9 en $a. PHP
proporciona un conjunto de operadores de asignacin de com-binacin;
de modo que si desea contraer una lnea como $a = $a = 6, puede usar
el operador deasignacin de combinacin +=. El operador =+ combina
los operadores + e = de tal modo, queesta lnea:$a = $a + 6;funciona
igual que esta otra:As, los operadores de asignacin de combinacin
proporcionan una forma abreviada de realizardos operaciones, una de
ellas como asignacin; $a = $a + 6 se convierte en $a += 6;. De
manera similar, el operador de asignacin -= combina una resta con
una asignacin;este cdigo deja 1 en $a: stos son los operadores de
asignacin combinados de PHP. Algunos de los que aqu semuestran
podran no serle familiares an, pero pronto los analizaremos en este
captulo: += = *= /= .= %= &= |= ^= = 62. 48 PHP: Manual de
referenciaste es otro ejemplo, que usa el operador de concatenacin
de cadenas de PHP (.), de estaforma:Esto deja el texto Sin
preocupaciones. en $a. Incremento y disminucin de valoresOtra cosa
hecha con frecuencia en PHP, es incrementar (sumar 1) o disminuir
(restar 1) valores.Por ejemplo, podra utilizar cdigo como ste para
aumentar el valor en $a:De hecho, incluso podra usar el operador de
asignacin abreviado += de esta forma:Pero PHP tiene un operador ms
sencillo, especficamente para incrementar valores: ++,usado de esta
forma:Despus de la ejecucin de este cdigo, $a queda con un valor de
2. De forma similar, el opera-dor disminuye valores. Esto es clave
para entender los operadores ++ y --. Si utiliza ++ o -- despus de
unavariable como en $a++, el valor de la variable se incrementa
luego de ejecutarse el resto de lainstruccin. As que, por ejemplo,
esta lnea de cdigo calcula y muestra la raz cuadrada de 4,mostrando
un valor de 2 y, slo entonces, incrementa el valor de $a: 63.
Captulo 2: Operadores y control de flujo 49Por otra parte, este
cdigo, donde el operador ++ va primero, incrementa primero el
valoren $a y luego muestra la raz cuadrada de 5: Es importante
tener eso presente (si coloca ++ o -- enfrente de una variable, el
valor de estase incrementa o disminuye antes de que se ejecute el
resto de la instruccin; si coloca el opera-dor ++ o -- despus de la
variable, el valor de esa variable se incrementa o disminuye despus
deejecutarse el resto de la instruccin. sta es una pgina PHP de
ejemplo, que muestra cmo funcionan los incrementos en
PHP,phpincrement.php: Incremento y disminucin Incremento y
disminucin Puede ver esta pgina, phpincrement.php, en la Figura
2.3. 64. 50PHP: Manual de referencia FIGURA 2-3 Incremento y
disminucin con PHP Operadores de cadena de PHP Quizs haya escuchado
que PHP logra la excelencia al trabajar con cadenas de texto y es
verdad. As que tal vez se sorprenda al enterarse de que PHP slo
tiene dos operadores para funcionar con cadenas: el operador de
concatenacin, ., y el operador de asignacin de concatenacin
combinado, .=. El verdadero poder de encadenamiento PHP est en sus
funciones de cadena, que ver en el captulo 3. ste es un ejemplo del
uso de operadores de cadena, phpstringoperators.php: Operadores de
cadenaOperadores de cadena 65. Captulo 2:Operadores y control de
flujo 51 FIGURA 2-4 Operadores de cadena en PHP Puede ver
phpstringoperators.php en la Figura 2-4.Operadores orientados a
bits PHP brinda tambin un conjunto de operadores orientados a
trabajar con bits individuales de nmeros. En general, tiene poco
sentido utilizar estos operadores a menos que sepa lo que hace con
lujo de detalle. Si no sabe de los bits contenidos en bytes, no se
preocupe por ello. Aunque normalmente se usan para enteros y
similares, de hecho pueden usarse tambin con cadenas, en cuyo caso
trabajar con el cdigo ASCII numrico de cada carcter. NOTA Estos
operadores estn diseados para trabajar en los bits individuales
contenidos en sus operandos; si busca los operadores booleanos que
funcionan con valores TRUE/FALSE, esto lo veremos ms adelante en
este captulo.Por ejemplo, el operador Or, |, trabaja con dos
operandos como ste: $a | $b. En el resultado, los bits que se
inicializan (es decir, igual a 1, no a 0) en $a o $b se inicializan
en el resultado. As, por ejemplo, si $a es igual a 1 (que tiene el
bit 0 inicializado) y $b = 2 (con el primer bit iniciali- zado),
entonces $a | $b ser igual a 1 | 2; los bits 0 y 1 se inicializan
en el resultado, de modo que es igual a 3.Puede observar los
operadores orientados a bits en la Tabla 2-1. 66. 52 PHP: Manual de
referencia Operador OperacinEjemplo Resultado $a & $bAnd$a
& $b Se inicializan los bits en $a y $b. $a | $bOr $a | $b Se
inicializan los bits en $a o en $b. $a ^ $bXor$a ^ $b Se
inicializan los bits en $a o $b pero no en ambos. ~ $a Not~ $aLos
bits en $a no se inicializan y viceversa. $a $b Desplazar a la
derecha $a >> $bDesplaza los bits de $a $b pasos a la derecha
(cada paso significa dividir entre dos).TABLA 2-1 Operadores
orientados a bitsAqu podra observar tambin los operadores de
desplazamiento, >. stos le permi-ten desplazar los bits
contenidos en sus operandos a la izquierda (). Ustedindica el nmero
que desea desplazar y el nmero de espacios que desea se desplacen
los bitsde ese nmero. Por ejemplo, 8 > 2 desplaza los bits de
valor 8 dos espacios a laderecha, lo mismo que dividir entre 4, de
modo que 8 >> 2 = 2. Operador de ejecucinEl operador de
ejecucin de PHP es formidable (le permite ejecutar comandos del
sistema,como fecha o dir (de directorio) de Windows. Todo lo que
debe hacer para ejecutar un comandodel sistema es encerrarlo entre
comillas individuales inversas ( ` ). ste es un ejemplo. El cdigo
ejecutar el comando de Windows dir c:Inetpubwwwrootch02 y mostrar
los resultados (observe que la diagonal inversa es un carcter
sensible, demodo que debe cerrarlo como ):Esto es lo que se obtiene
al ejecutar este ejemplo, phpdir.php:%php phpdir.php El volumen de
la unidad K es AsicomDBaseII Directorio de
K:AsicomClientesMcGrawHillPHPTraducidosCaptulosCap
02Cdigoch0207/03/200809:39 p.m.