3.1 Formato del código PHP. · HTML que da un formato de página. Habitualmente encontraremos...

42
3.1 Formato del código PHP. Introducción a PHP. En el año de 1994 el canadiense-danés Rasmus Lerdorf creo una serie de “comandos del servidor” creando las “ Personal Home Page Tools”, añadiendo posteriormente un interpretador de formularios “FI”. En 1995, Rasmus Lerdford presento la primera versión de PHP al publico a través de un mensaje en el grupo de noticias comp.infosystems.www.auhoring.cgi, publicando bajo la licencia libre GNU. Dichos comandos estaban escritos en C, de ahí que su sintaxis es muy similar a este lenguaje. La comunidad de desarrolladores se empezó a interesar por PHP/FI y en poco tiempo se convirtió en un elaborado trabajo en equipo, siendo la ultima versión disponible la 5. Actualmente PHP se utiliza como acrónimo de “Hipertext Preprocessor”, es decir, como preprocesador de páginas Web. PHP es un lenguaje de secuencias de comandos (scripts), que se integran directamente en las paginas HTML y son interpretadas por el servidor. El proceso es el siguiente: El navegador envía una solicitud http al servidor Web (se llama a una pagina que redesea visualizar). El servidor reacciona, lee la pagina PHP, ejecuta los comando que esta contiene y envía el documento traducido en formato HTML. Ya que PHP se ejecuta en el lado del servidor, el usuario nunca llega a ver el código PHP, sino que se limita a recibir el formato final en formato HTML. Nota: Si verificas el proceso anterior, es el mismo que ya habíamos visto en el tema 1.1 de Servidores Web. PHP no cuesta nada, este lenguaje se distribuye en el marco de licencia Open Source, por lo que el código fuente es abierto y cualquiera puede consultarlo. PHP como lenguaje no cuesta nada, pero si deseamos que nuestras paginas contengan PHP, se necesitara un proveedor de alojamiento que ofrezca soporte para PHP, o bien contar personalmente con un servidor Web funcionando en Internet.

Transcript of 3.1 Formato del código PHP. · HTML que da un formato de página. Habitualmente encontraremos...

3.1 Formato del código PHP.

Introducción a PHP.

En el año de 1994 el canadiense-danés Rasmus Lerdorf creo una serie de “comandos del servidor”

creando las “Personal Home Page Tools”, añadiendo posteriormente un interpretador de formularios “FI”.

En 1995, Rasmus Lerdford presento la primera versión de PHP al publico a través de un mensaje en el

grupo de noticias comp.infosystems.www.auhoring.cgi, publicando bajo la licencia libre GNU. Dichos

comandos estaban escritos en C, de ahí que su sintaxis es muy similar a este lenguaje.

La comunidad de desarrolladores se empezó a interesar por PHP/FI y en poco tiempo se convirtió en un

elaborado trabajo en equipo, siendo la ultima versión disponible la 5.

Actualmente PHP se utiliza como acrónimo de “Hipertext Preprocessor”, es decir, como preprocesador de

páginas Web.

PHP es un lenguaje de secuencias de comandos (scripts), que se integran directamente en las paginas

HTML y son interpretadas por el servidor. El proceso es el siguiente:

El navegador envía una solicitud http al servidor Web (se llama a una pagina que redesea

visualizar).

El servidor reacciona, lee la pagina PHP, ejecuta los comando que esta contiene y envía el

documento traducido en formato HTML.

Ya que PHP se ejecuta en el lado del servidor, el usuario nunca llega a ver el código PHP, sino

que se limita a recibir el formato final en formato HTML.

Nota:

Si verificas el proceso anterior, es el mismo que ya habíamos visto en el tema 1.1 de Servidores Web.

PHP no cuesta nada, este lenguaje se distribuye en el marco de licencia Open Source, por lo que el código

fuente es abierto y cualquiera puede consultarlo.

PHP como lenguaje no cuesta nada, pero si deseamos que nuestras paginas contengan PHP, se

necesitara un proveedor de alojamiento que ofrezca soporte para PHP, o bien contar personalmente con un

servidor Web funcionando en Internet.

Fundamentos del lenguaje PHP

La sintaxis de PHP es muy parecida a la de otros lenguajes de programación muy extendidos

como son los lenguajes C, JAVA, Perl o, incluso, el lenguaje de scirpt javascript. Por tanto, todos aquellos

que estén familiarizados con estos lenguajes encontraran una gran facilidad a la hora de seguir la escritura

sintética de las instrucciones y sentencias que presenta el lenguaje PHP.

El vocabulario de PHP, relativamente pequeño, es fácil de comprender y nos da un amplio numero

de posibilades, antes no disponibles. Además, PHP nos proporciona un conjunto de herramientas

compactas propias que realizan las interacciones entre los usuarios y las paginas HTML, permitiéndonos

dar servicio a las peticiones más habituales de una forma sencilla.

Estructura de un documento PHP.

PHP esta relacionado con el lenguaje de hipertexto HTML; tanto es así, que el código PHP aparece

normalmente insertado dentro de un documento HTML. El documento PHP, una vez interpretado

correctamente en el servidor genera una página HTML que seria enviada al cliente.

Para diferenciar ambos lenguajes dentro del mismo documento, se utilizan etiquetas de comienzo y final del

código PHP. Las etiquetas mas habituales para delimitar los bloques de código PHP son los siguientes:

<?php

Instrucciones PHP

?>

Otra forma es introducir el código PHP dentro del documento HTML haciendo uso de la etiqueta <script>;

para ello además, se debe indicar el lenguaje a utilizar

<script language=”php”>

Instrucciones PHP

</Script>

Extensión de archivos.

La extensión de los archivos que se utilizan en PHP es muy importante, ya que, dependiendo de

dicha extensión, el servidor Web utilizado decide si el documento solicitado debe ser procesado por el

intérprete de PHP o no. Además, las extensiones que indican al servidor http que el fichero contiene

códigos PHP son los siguientes:

.php3 Código PHP 3.x

.php4 Código PHP 4.x

.php Indica código PHP (esta extensión será la que utilicemos a la hora de guardar

nuestros programas PHP)

.phps utilizada para ver la sintaxis del código resultado en colores

.phtml extensión en desuso

En general PHP 3.0 es compatible con PHP 4.0, por lo que tiene mucha importancia el poner una extensión

u otra, ya que el interprete las procesa casi de igual forma.

Ahora vamos a realizar nuestra primera pagina PHP y comprobar el correcto funcionamiento del interprete.

Para ello editaremos y guardaremos el siguiente código en un archivo llamado Ejemplo1.php

Ejemplo 1. Primer Ejemplo.

<html>

<head>

<title>Ejemplo 1 </title>

</head>

<body>

<?php

echo "Hola, Mi primer Ejemplo en PHP";

?>

</body>

</html>

La instrucción echo, permite mostrar un texto en el navegador Web, el texto puede ir encerrado entre

comilla simple o doble.

Pasos para ejecutar el archivo anterior:

1. Cuando instalaste el servidor Web Apache se creo una carpeta en el disco duro llamada Apps y

dentro de ella otra llamada WWW. Es recomendable crear una carpeta dentro de la carpeta

WWW, para que almacenes ahí tus archivos.

2. Capturar el archivo en cualquier editor de texto, puede ser el PHPEdit o el Bloc de Notas. El

PHPEdit lo puedes descargar de la siguiente pagina WWW. Y los pasos de instalación se explican

mas detallados en la bibliografía de este modulo.

3. Para ejecutar tu archivo inicias el navegador Web y capturas la siguiente dirección:

http://localhost/nombre_directorio/Ejemplo1.php

localhost corresponde al servidor local instalado en tu computadora.

Nombre_directorio corresponde al nombre de la carpeta que creaste en el paso 1.

Ejemplo1.php corresponde al nombre del archivo que hayas guardado el código.

Cuando solicitamos una pagina .php, el servidor invocara al interprete PHP y este comenzara a “traducir” el

documento seleccionado, es decir leerá el documento, devolviendo al servidor el texto que se encuentre tal

y como esta, exceptuando a aquel que se encuentre entre las etiquetas <?php y ?>, que lo analizara y

ejecutara por ser código PHP. Si alguna de las instrucciones PHP genera texto, el intérprete lo entregara al

servidor Web para que este lo envié al cliente.

La ventana que te visualiza en el navegador es la siguiente:

Si tu ves el código que te envía el servidor Web observaras que lo que corresponde a PHP no lo muestra y

solo código HTML. Para visualizar el código elige Menú Ver, la opción Código Fuente.

Como se pude observar en el ejemplo anterior, el código PHP se halla inmerso dentro de un documento

HTML que da un formato de página. Habitualmente encontraremos código PHP insertado en cualquier

parte del documento HTML y aparecerá tantas veces como sea necesario. Cada uno de los bloques de

código PHP, al ser procesado, genera una salida en el documento HTML resultado, justo en la posición en

que dicho bloque esta.

También se puede añadir código HTML, dentro del mismo código php, si se desea dar formato a la

información mostrada, como se muestra en el ejemplo 2.

Ejemplo 2. Formato dentro de las etiquetas PHP.

<html>

<head>

<title>Ejemplo 2 </title>

</head>

<body>

<?php

echo " <B> <CENTER> <FONT SIZE =4>Hola, Mi segundo Ejemplo

en PHP </B> </CENTER> </FONT> ";

?>

</body>

</html>

Inclusive todo el código HTML, puede estar dentro de las etiquetas php. El código PHP también puede

formar parte de un documento que no contenga ninguna etiqueta HTML.

Ejemplo 2 Modificado. Formato dentro de las etiquetas PHP.

<?php

echo "<html>”;

echo "<head>”;

echo "<title>Ejemplo 2 </title>”;

echo "</head>”;

echo "<body>”;

echo " <B> <CENTER> <FONT SIZE =4>Hola, Mi segundo Ejemplo

en PHP </B> </CENTER> </FONT> ";

echo "</body>”;

echo "</html>”;

?>

Comentarios en PHP

Para introducir comentarios dentro del código, PHP ofrece la posibilidad de hacerlo de tres formas

distintas que también son utilizadas en otros lenguajes. Las siguientes porciones de código nos muestran la

utilización de estos diferentes tipos de comentarios:

<?php

// comentario inicial

echo “primer tipo de comentarios”; // comentario tipo c, C++

# comentario final tipo shell de unix

?>

En este primer tipo de comentario solo se puede utilizar para comentar una única línea de código. Se

puede usar el doble carácter “//” (utilizados en los lenguajes C, C++, JAVA , JAVASCRIPT, ETC) o del

carácter almohadilla “#” (Perl, Shell).

<?php

/* comentario inicial */

echo “primer tipo de comentarios”; // comentario tipo c, c++ */

/*

Comentario

Final

*/

?>

Este segundo tipo de comentario es de tipo multi línea, es decir, nos permite comentar varias líneas de

código fuente. Por lo tanto, podemos extender nuestros comentarios a más de una línea de código, si bien,

como se puede ver en el ejemplo, también se puede utilizar comentarios de una sola línea.

Hay que tener cuidado con los comentarios de tipo multilínea, ya que no pueden anidarse, es decir, no se

pueden poner comentarios dentro de otros comentarios. También es importante tener en cuenta que este

tipo de comentarios siempre tienen que cerrarse con la secuencia de caracteres “*/”.

Dentro del código PHP se podrá usar indistintamente cualquier tipo de los tres para introducir comentarios.

No obstante, no es recomendable mezclar distintos tipos de comentario en un mismo archivo, sino elegir

una sintaxis de las anteriormente citadas y utilizarla en todo el documento.

El siguiente código nos muestra la utilización de los diversos tipos de comentarios dentro de un documento

PHP:

Ejemplo 3. Uso de comentarios.

<HTML>

<HEAD>

<TITLE>Prueba de 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>

Como podemos observar en la siguiente figura, solo se muestra la información impresa por la función echo

y no el resto de comentarios incluidos en el código.

Fin de línea

PHP ignora cualquier carácter de espacio presente en el código, incluyendo espacios en blanco,

tabuladores y saltos de línea, excepto si se encuentra dentro de una cadena de texto.

El fin de sentencia se marca en todas las instrucciones con el carácter de punto y coma “;”, o bien,

aprovechando la etiqueta de cierre, “?>”, puesto que se asume que el final de la inclusión de código limita

la introducción de nuevas instrucciones. Por tanto los siguientes códigos son correctos:

<?php

echo “finalizando la etiqueta de cierre”

?>

<?php

echo “finalizando con punto y coma”;

?>

3.2 Tipos de datos.

PHP soporta tres tipos de datos simples: integer, float y string; y dos tipos de datos compuestos: array y

object. Además, hace uso de tipo lógico boolean, aunque no aparece definido como tal en la sintaxis del

lenguaje.

El número de punto-flotante, también conocido como “double”. En este tema solo se van analizar los tipos

simples, el tipo bolean. Los tipos compuestos se vean mas adelante.

Datos Enteros.

Un entero (integer) es un número del conjunto Z = {..., -2, -1, 0, 1, 2, ...}.

Las variables de tipo integer, pueden contener números enteros que varían entre un rango de -2 billones y

+2 billones (lo que es un valor de 32 bits con signo) y se pueden especificar usando diferentes sintaxis.

Sintaxis

Los enteros pueden ser especificados en notación decimal (base-10), hexadecimal (base-16) u octal (base-

8), opcionalmente precedidos por un signo (- o +).

Si usa la notación octal, debe preceder el número con un 0 (cero) y pueden incluir cualquier secuencia de

dígitos entre el 0 y el 7., para usar la notación hexadecimal, preceda el número con 0x, seguidos de

números de 0 al 9 y letras de la A a la F(a hasta f).

Algunos ejemplos son:

Formato Valores

Decimal -33

2139

Octal 071

03664

Hexadecimal 0x7b8

0x395

Ejemplo 4. Literales tipo entero

<?php

$a = 1234; // numero decimal

$a = -123; // un numero negativo

$a = 0123; // numero octal (equivalente al 83 decimal)

$a = 0x1A; // numero hexadecimal (equivalente al 26 decimal)

?>

El siguiente código muestra la asignación de los valores de tipo entero a una variable en los diferentes

formatos numéricos que PHP puede manejar para este tipo de datos:

Ejemplo 5. Visualización de diferentes asignaciones de enteros.

<HTML>

<HEAD>

<TITLE> Variables enteras</TITLE>

</HEAD>

<BODY

<CENTER>

<H2>formatos de los números enteros</H2>

<TABLE BORDER="1">

<TR ALIGN="right">

<TD BGCOLOR="yellow">decimal positivo</TD>

<TD>

<?php

$num = 502; //numero decimal

echo $num; // mostraremos el valor de $num

?>

</TD>

</TR>

<TR ALIGN="right">

<TD BGCOLOR="YELLOW">decimal negativo</TD>

<TD>

<?php

$num= -502; //numero decimal negativo

echo $num; //mostramos el valor de $num

?>

</TD>

</TR>

<TR ALIGN="right">

<TD BGCOLOR="yellow">decimal octal (0502)</TD>

<TD>

<?php

$num= 0502; //numero octal

echo $num; // mostramos el valor de $num

?>

</TD>

</TR>

<TR ALIGN="right">

<TD BGCOLOR="yellow">decimal hexadecimal (0x12)</TD>

<TD>

<?php

$num=0x12; //numero hexadecimal

echo $num; // mostrar el valor de $num

?>

</TD>

</TR>

</TABLE>

</CENTER>

</BODY>

</HTML>

El resultado en pantalla es:

Tipo de dato flotante

Los números de punto flotante (también conocidos como "flotantes", "dobles" o "números reales") pueden

ser especificados usando cualquiera de las siguientes sintaxis:

<?php

$a = 1.234;

$b = 1.2e3;

$c = 7E-10;

?>

El tamaño de un flotante depende de la plataforma, aunque un valor común consiste en un máximo de

~1.8e308 con una precisión de aproximadamente 14 dígitos decimales (lo que es un valor de 64 bits en

formato IEEE).

Tipo de dato Booleanos.

Este es el tipo más simple. Un dato boolean expresa un valor de verdad. Puede ser TRUE o FALSE.

Sintaxis

Para especificar una variable booleano, use alguna de las palabras clave TRUE o FALSE. Ambas son

insensibles a mayúsculas y minúsculas.

<?php

$foo = True; // asignar el valor TRUE a $foo

?>

Datos tipo Cadenas

Un valor string o cadena, es una serie de caracteres. En PHP, un carácter es lo mismo que un byte, es

decir, hay exactamente 256 tipos de caracteres diferentes.

Nota: El que una cadena se haga muy grande no es un problema. PHP no impone límite práctico alguno

sobre el tamaño de las cadenas, así que no hay ninguna razón para preocuparse sobre las cadenas largas.

Sintaxis

Un literal de cadena puede especificarse básicamente en dos formas diferentes: comillas simples y comillas

dobles.

Comillas simples

La forma más simple de especificar una cadena sencilla es rodearla de comillas simples (el carácter '

apostrofo).

Ejemplo:

<?php

$variable1 = 'esta es una cadena simple';

?>

Comillas dobles

Si la cadena se encuentra rodeada de comillas dobles ("), se puede utilizar una serie de secuencias de

escape para caracteres especiales:

<?php

$variable1 = “esta es una cadena doble”;

?>

Tabla. Caracteres de escape o secuencia de escape.

secuencia significado

\n alimentación de línea (LF o 0x0A (10) en ASCII)

\r retorno de carro (CR o 0x0D (13) en ASCII)

\t tabulación horizontal (HT o 0x09 (9) en ASCII)

\\ barra invertida

\$ signo de dólar

\" comilla-doble

\[0-7]{1,3} la secuencia de caracteres que coincide con la expresión regular es un carácter en

notación octal

\x[0-9A-Fa-

f]{1,2}

la secuencia de caracteres que coincide con la expresión regular es un carácter en

notación hexadecimal

Ejemplo 6: Uso de Secuencias de escape.

<?php

$nombre = 'Luz';

echo "Hola Mundo\n";

echo "Hola \"<B>$nombre</B>\", Bienvenido al Curso de DAW";

?>

El resultado es dar un salto de línea después de Hola Mundo y encerrar el valor de la variable $nombre

entre comillas dobles, tal como se muestra en la siguiente figura.

Prueba los siguientes ejemplos de manejo de cadenas y cual es tu conclusión:

Nota:

Dependiendo la version que se tenga de PHP, tal vez no te permita utilizar variables dentro de cadenas con

comilla simple, como se muestra en el siguiente ejemplo:

<?php

$nombre = 'Luz';

echo 'Hola \'<B>$nombre</B>\', Bienvenido al Curso DAW';

?>

El resultado sera: Hola '$nombre', Bienvenido al Curso DAW

3.3 Variables y Constantes.

Variables.

Una variable es el nombre que se le da a una posición de la memoria de la computadora en el cual se

almacena información. Conociendo esta posición de memoria (su dirección), somos capaces de encontrar,

actualizar o recuperar información cuando la necesitamos durante el programa. A través de las variables se

pueden asignar nombres significativos a las posiciones donde se almacena la información y poder hacer

referencia a ellas de una forma más sencilla. La naturaleza de dicha información puede ser de muy

distintos tipos: números enteros, números decimales, caracteres.

Declaración de variables.

En los lenguajes de programación, al definir una variable, es habitual expresar la naturaleza del tipo de

información que se va a guardar. Además, durante todo el programa, cualquier valor asignado a esa

variable se espera que sea del tipo de datos utilizado en su definición, provocando un error cuando se

intenta asignar un tipo de dato diferente.

En el caso de PHP no es necesario declarar las variables antes de su utilización. Las variables se crean en

el instante en que son utilizadas por primera vez; para su inicialización, se utiliza el operador de asignación

(=); a partir de ese instante, podremos recuperar su contenido simplemente reverenciando la variable por

su nombre. Por otra parte, las variables no tienen asociada la naturaleza del tipo de información que

almacenan. De hecho, una variable podrá almacenar durante todo su tiempo de vida diferentes tipos de

informaciones.

Reglas para nombres de variables.

En PHP todos los nombres van procedidos por el símbolo de un dólar, $, seguido al menos por una letra

(de la A a la Z) o un guión bajo (“_”) para, después, continuar por cualquier combinación e letras (en

mayúsculas o minúsculas), de dígitos (del 0 al 9) y de guiones bajos (“_”). La siguiente tabla muestra

algunos ejemplos de identificadores validos e inválidos:

variable Inválidos Motivo

$Valor _ actual $Valor Actual Contiene un Espacio

$NumeroDeDatos $#Datos Contiene el carácter no valido “#”

$N $2saldos Empieza por numero

$n $prueba, valor Contiene carácter no valido (,)

Finalmente, cabe destacar que, como el interprete PHP distingue entre mayúsculas y minúsculas, los

nombres de variables con diferencias en mayúsculas o minúsculas en caracteres iguales componen

nombres de variables distintas; por tanto, los identificadores $N y $n son diferentes, es decir, serian

variables distintas.

Ejemplo No. 7 Aplicación y Uso de Variables.

<HTML>

<BODY>

<?php

$nombre = “Desarrollo de Aplicaciones en Web”; //Variable cadena

$horas = 84; //Variable numerica

$activo = true; //Variable bolean

echo “El curso es: <B> $nombre </B><BR>”;

echo “El total de horas es de: <B> $horas </B><BR>”;

echo “El curso esta actualmente activo: <B> $activo </B><BR>”;

?>

</BODY>

</HTML>

Variables predefinidas.

PHP ofrece una gran cantidad de variables predefinidas a cualquier script que se ejecute en un sistema.

Estas variables guardan información relativa del entorno de ejecución del intérprete y del propio PHP, la

versión y su configuración, entre otras cuestiones.

Esta variables se pueden clasificar, por tanto, en dos grandes grupos: por una parte, las que el entorno, el

servidor Web, le pasa al interprete de PHP y, por otra parte, las que el interprete pone a disposición del

programador. La siguiente tabla muestra algunas de las variables del entorno más utilizadas:

Variable Significado

SERVER_NAME indica el nombre del equipo servidor el que se

ejecuta el script

SERVER_PORT indica el puerto del equipo servidor que usa el

servidor Web para la comunicación

SERVER_SOFTWARE Indica que software esta siendo utilizado en el

equipo servidor

REMOTE_PORT Contiene el e puerto que utiliza el peticionario para

comunicarse con el servidor Web

REMOTE_ADDR Contiene la petición remota desde la que se realiza

la petición

DOCUMENT_ROOT Indica el directorio raíz del documento bajo el que

se ejecuta el script

HTTP_REFERER Contiene la dirección de la pagina (en caso de

haberla) desde la que el navegador salto a la

pagina actual

Ejemplo No. 8 Aplicación y Uso de Variables Predefinidas.

<HTML>

<BODY>

<?php

//Variable bolean

echo "Nombre del Servidor = <B> $SERVER_NAME</B></BR>";

echo "Puerto utilizado = <B> $SERVER_PORT</B></BR>";

echo "Software de programAcion dinamica = <B> $SERVER_SOFTWARE</B></BR>";

echo "Puerto de comunicacion = <B> $REMOTE_PORT</B></BR>";

echo "IP del cliente = <B> $REMOTE_ADDR</B></BR>";

echo "Directorio de trabajo = <B> $DOCUMENT_ROOT</B></BR>";

?>

</BODY>

</HTML>

Constantes.

Una constante es un identificador para expresar un valor simple. Como el nombre sugiere, este valor no

puede variar durante la ejecución del script. Una constante es sensible a mayúsculas por defecto. Por

convención, los identificadores de constantes suelen declararse en mayúsculas

El nombre de una constante sigue las mismas reglas que cualquier etiqueta en PHP. Un nombre de

constante válido empieza con una letra o un carácter de subrayado, seguido por cualquier número de

letras, números, o subrayados

Sintaxis

Se puede definir una constante usando la función define(). Una vez definida, no puede ser modificada ni

eliminada .

Solo se puede definir como constantes valores de tipo: boolean, integer, float y string.

Para obtener el valor de una constante solo es necesario especificar su nombre. A diferencia de las

variables, no se tiene que especificar el prefijo $.

Nota: Las constantes y las variables (globales) se encuentran en un espacio de nombres distinto. Esto

implica que por ejemplo TRUE y $TRUE son diferentes.

Si usas una constante todavía no definida, PHP asume que estás refiriéndote al nombre de la constante en

si, se ejecutara un alerta y por lo tanto es recomendable utilizar la función defined(), para comprobar la

existencia de dicha constante.

Estas son las diferencias entre constantes y variables:

Las constantes no son precedidas por un símbolo de dólar ($)

Las constantes solo pueden ser definidas usando la función define() , nunca por simple

asignación

Las constantes pueden ser definidas y accedidas sin tener en cuenta las reglas de alcance del

ámbito.

Las constantes no pueden ser redefinidas o eliminadas después de establecerse; y

Las constantes solo puede albergar valores escalares

<?php

define("CONSTANT", "Hola Mundo.");

echo CONSTANT; // salida Hola Mundo.

echo Constant; // salida constante no esta en uso y muestra la palabra Constant

?>

Constantes predefinidas

PHP ofrece un largo número de constantes predefinidas a cualquier script en ejecución. Muchas de estas

constantes, sin embargo, son creadas por diferentes extensiones, y solo estarán presentes si dichas

extensiones están disponibles, bien por carga dinámica o porque has sido compiladas.

Ejemplo No. 9 Uso de Constantes.

<?php

define("PI", 3.1416);

$radio = 4;

$area = PI * $radio;

echo “El area de un circulo de radio $radio es $area”;

?>

3.4 Operadores y Expresiones.

Expresiones.

Una expresión una operación o instrucción que produce un valor. Puede ser tan simple como un número o

una variable. También puede incluir un conjunto de variables, constantes, operadores y funciones.

Cuando se escribe $a = 5, se esta asignando el valor entero 5 a la variable (en este caso, 5 es una

constante entera).

Después de esta asignación, se espera que el valor de $a sea 5 también, de manera que si se escribe $b =

$a, se espera también que se comporte igual que si escribieses $b = 5. En otras palabras, $a es una

expresión también con el valor 5.

Las expresiones al ser evaluadas generan un valor de un tipo de dato especificado en PHP (integer, float,

boolean, array, object).

Operadores.

Un operador es usado para determinar el valor de un procedimiento o una operación de uno o más valores.

Un valor que es usado en una operación es conocido como operandos.

Los operadores en PHP son similares al lenguaje C.

Operadores Aritméticos.

Como muchos lenguajes de programación PHP utiliza los operadores matemáticos básicos, se muestran

en la siguiente tabla:

Operador Nombre Descripcion Ejemplo Resultado

+ Suma Suma dos operandos $a + $ b (10+3) 13

− Resta Resta dos operandos $a - $ b (10-3) 7

/ Division Divide dos operandos $a / $ b (10/3) 3.3333333333333

* Multiplication Multiplica dos operandos $a * $ b (10*3) 30

% Modulo o Residuo

Resto de la división entera $a % $ b (10%3) 1

PHP ignora los caracteres de espacio. Así que $x = 6 * 2; y $x=6*2; son iguales para PHP. La forma de

utilizar nosotros la planteamos de acuerdo a como sea mas legible para uno.

Operador Unario.

El signo menos (-) es usado con un simple valor numérico, para negar el numero. Por ejemplo:

$a = 2;

$b = - $a; // $b = -2

$c = 4;

$d = - $c; // $d = 4

Operador de Asignación

Para dar valores a las variables se utiliza el operador de asignación =.

La variable de lado izquierdo a el signo = toma el valor de la expresión de el lado derecho del = y así dicho

valor se conserva en memoria.

El operador de asignación toma la forma:

Variable = expresión;

PHP soporta otros operadores de asignación, que realmente son una combinación del operador de

asignación básico con operadores aritméticos y con el operador de concatenación de cadenas. La siguiente

tabla resume los operadores de asignación:

Operador Ejemplo Equivalente a

+= $x += 5 $x = $x + 5

− = $x − = 5 $x = $x − 5

/= $x /= 5 $x = $x / 5

*= $x *= 5 $x = $x * 5

%= $x%=5 $x = $x % 5

.= $x .= "test" $x = $x" test"

Ejemplo No. 10 Aplicacion de operadores de asignacion y aritmeticos.

<HTML>

<BODY>

<H2> Operadores Aritmeticos </H2>

<?php

define ("DOLAR", 11.4);

echo "El valor de la constante dolar es <B> " . DOLAR . "</B> pesos<BR>";

$dinero = 100;

$total = DÓLAR * $dinero;

echo "La convesion de <B>$dinero </B> pesos es <B>$total </B> dolares";

?>

</BODY>

</HTML>

Operadores de comparación

Los operadores de comparación son usados para evaluar una condición. La expresión que utiliza

operadores de comparación siempre al evaluarse retornara un valor Boolean, que puede ser true o false.

Los operadores de comparación son mostrados en la siguiente tabla, suponiendo par $x un valor de 3

Operador Descripción Evalúa verdadero cuando Ejemplo Resultado

== Igual a Operando de la izquierda es igual

al de la derecha

$x == 5

false

< Menor que Operando de la izquierda es menor

al de la derecha

$x < 4

true

> Mayor que Operando de la izquierda es mayor

al de la derecha

$x >= 4

false

<= Menor igual que Operando de la izquierda es menor

o igual al de la derecha

$x <= 4

true

>= Mayor igual que Operando de la izquierda es mayor

o igual al de la derecha

$x >= 4

false

!= Diferente Operando de la izquierda es

diferente al de la derecha

$x != 5

true

<> Diferente Operando de la izquierda es

diferente al de la derecha

$x <> 4

true

Es importante no confundir la operación de asignación = con la operación de comparación ==. La

operación de asignación es usada para asignar el valor a una variable, mientras que el operador de

comparación es usado para evaluar el contenido de una variable.

Por ejemplo, si se escriben las siguientes sentencias.

$i = 4;

if ($i = 7) echo „Siete”;

Lo anterior es perfectamente legal en PHP, no se obtendrá mensajes de error. Sin embargo se le asigna a

la variable $i, el valor de 7, la evaluación del estatuto if es el valor de la variable $i que es 7 con un valor

vacío y por lo tanto el resultado es true.

Operadores Lógicos.

Los operadores lógicos son usados para combinar condiciones, así las múltiples condiciones pueden ser

evaluadas todas como una sola expresión. El operador lógico “and”, retorna true, si las dos condiciones o

más son true. El operador lógico “or”, retorna true, cuando una o más de las condiciones son true.

Finalmente el operador lógico “not” retorna true si el valor de la expresión es false.

La siguiente tabla muestra los operadores lógicos:

Nombre Ejemplo Resultado

Y $a and $b TRUE si tanto $a como $b son TRUE.

O $a or $b TRUE si cualquiera de $a o $b es TRUE.

O exclusivo (Xor) $a xor $b TRUE si $a o $b es TRUE, pero no ambos.

No ! $a TRUE si $a no es TRUE.

Y $a && $b TRUE si tanto $a como $b son TRUE.

O $a || $b TRUE si cualquiera de $a o $b es TRUE.

Nota que existen dos operadores para la operación lógica “Y” y “O”. Estas son similares pero tiene diferente

precedencias.

Los siguientes ejemplos muestran el uso de los operadores lógicos. El resultado es tomado basado en los

siguientes valores: $h = 4; $i = 5; $j = 6;

if ($h == 4 && $i == 5 && $j == 6)

echo “Esto se visualizara”;

En este caso todas las condiciones son verdaderas, así que la función echo es ejecutada.

if ($h == 3 or $i == 5)

echo “Esto se visualizara”;

Aquí la primera condición ($h == 3) se evalúa a false, y la segunda ($i == 5) da true. Ya que solamente una

de las condiciones tienen que ser verdadero en al operador lógico “or”, el resultado es verdadero y se

ejecuta la función echo.

Ejemplo 11. Uso de Operadores de comparación y logicos.

<HTML>

<BODY>

<H2> Operadores Relacionales y Logicos </H2>

<?php

define ("A", 3);

define ("B", 8);

define ("C", 5);

echo "Los 3 numeros a comparar son <B> " . A . ", “ . B . “ y “ . C . “</B> <BR> y el mayor es:";

echo (A>B) && (A>C)?A:” “;

echo (B>A) && (B>C)?B:” “;

echo (C>B) && (C>B)?C:” “;

?>

</BODY>

</HTML>

Operadores de Cadena.

El operador de concatenación de cadenas representado por un punto (“.”), devuelve como resultado la

concatenación de sus operandos izquierdos y derechos. El resultado es la conacatenacion de dos o mas

valores tipo cadena en un solo valor.

$nombre = “Patricia”;

$apellido = "Melo”;

$todo = $nombre . “ “ . $apellido; //nombre un espacio y apellido

echo $todo;

PHP interpola variable tipo string en literales de string con doble comilla. Las siguientes líneas de código

imprimen Melo Patricia, considerando los valores para as variables $nombre = “Patricia”; $apellido = “Melo”;

echo $apellido . “ “ . $nombre;

echo “$apellido $nombre”;

La segunda línea es mas eficiente, pero ambos tipos producen resultados similares.

Operadores de Incremento y Decremento.

PHP soporta operadores específicos para incrementar y decrementar el valor de las variables. En el

momento de la ejecución dependerá de la posición en la que aparezcan respecto de la variable a la que

son aplicados.

Ejemplo Nombre Efecto

++$a Pre-incremento Incrementa $a en uno, y luego devuelve $a.

$a++ Post-incremento Devuelve $a, y luego incrementa $a en uno.

--$a Pre-decremento Decrementa $a en uno, luego devuelve $a.

$a-- Post-decremento Devuelve $a, luego decrementa $a en uno.

Ejemplo 12. Uo de Operadores de Incremento y Decremento.

<?php

echo "<h3>Postincremento</h3>";

$a = 5;

echo "Debe ser 5: " . $a++ . "<br />\n";

echo "Debe ser 6: " . $a . "<br />\n";

echo "<h3>Preincremento</h3>";

$a = 5;

echo "Debe ser 6: " . ++$a . "<br />\n";

echo "Debe ser 6: " . $a . "<br />\n";

echo "<h3>Postdecremento</h3>";

$a = 5;

echo "Debe ser 5: " . $a-- . "<br />\n";

echo "Debe ser 4: " . $a . "<br />\n";

echo "<h3>Predecremento</h3>";

$a = 5;

echo "Debe ser 4: " . --$a . "<br />\n";

echo "Debe ser 4: " . $a . "<br />\n";

?>

El resultado se muestra en la siguiente figura

Precedencia de operadores.

Cuando una expresión esta formada por más de un operador del mismo tipo, PHP la evalúa de izquierda a

derecha, pero cuando se encuentran operadores de diferente tipo, PHP las evalúa basadas en la

precedencia definida para cada operador.

Siempre se puede alterar la precedencia encerrando los valores entre paréntesis. La siguiente tabla

muestra la precedencia de los operadores.

Por ejemplo, en la expresión 1 + 5 * 3, la respuesta es 16 y no 18, ya que el operador de multiplicación ("*")

tiene una mayor precedencia que el operador de adición ("+"). Los paréntesis pueden ser usados para

marcar la precedencia, si resulta necesario. Por ejemplo: (1 + 5) * 3 evalúa a 18. Si la precedencia de los

operadores es la misma, se utiliza una asociación de izquierda a derecha.

La siguiente tabla lista la precedencia de los operadores, con aquellos de mayor precedencia listados al

comienzo de la tabla. Los operadores en la misma línea tienen la misma precedencia, en cuyo caso su

asociatividad decide el orden para evaluarlos.

Asociatividad Operadores Operaciones

No aplica ( ) Establece precedencia

no-asociativos ++ -- Incremento, decremento

no-asociativos ! - Negacion, Operador unario

izquierda * / % Multiplicación, división,

modulo

izquierda + - . Suma, resta, concatenación

no-asociativos < <= > >= Menor, Menor igual, Mayor,

Mayor igual

no-asociativos == != Igual, Diferente

izquierda && Lógico Y

izquierda || Lógico O

derecha = += -= *= /= .= %= Asignación

izquierda and Lógico Y

izquierda xor Lógico Xor

izquierda or Lógico O

La asociatividad de izquierda quiere decir que la expresión es evaluada desde la izquierda a la derecha, la

asociatividad de derecha quiere decir lo contrario.

Ejemplo . Asociatividad

<?php

$a = 3 * 3 % 5; // (3 * 3) % 5 = 4

$a = 1;

$b = 2;

$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5

?>

Use paréntesis para incrementar la legibilidad del código.

3.5 Instrucciones condicionales.

Sentencia Condicional IF

Es una de las mas utilizadas e importantes en la mayoría de los lenguajes de programación. Su sintaxis es

la siguiente:

If (condición) {

[Sentencias]

}

El interprete de PHP lo que hace es evaluar la condición, que debe ser una expresión lógica y, si resulta

verdadera, se ejecutaran las sentencias comprendidas entre las llaves”{” y “}” y, si es falsa PHP ignora las

sentencias y seguirá con la ejecución normal del programa. Es decir, nos permite tomar decisiones en torno

a una condición.

NOTA: Es recomendable siempre poner llaves “{”y”}”, dentro del cuerpo de la sentencia if, aunque solo

haya una sentencia.

Ejemplo 12: Ejecuta un bloque de código solamente si la variable contiene la cadena “Feliz”

<html>

<head>

<title>Ejemplo 12</title>

</head>

<body>

<?php

$animo = "feliz";

if ( $animo == "feliz" )

{

echo “Hoy, yo tendré un Buen día”;

}

?>

</body>

</html>

El resultado del ejemplo anterior sera la visualizacion del mensaje ya que la condicion es verdadera.

IF ELSE

A menudo nos interesa ejecutar un código distinto si la evaluación de la condición que acompaña a la

instrucción if no es verdadera. Se utiliza entonces la sentencia if…else; esta consta de un bloque if que se

ejecutan cuando la expresión se evalúa a true y de un bloque else cuyas instrucciones se ejecutan cuando

se evalúa a false. La sintaxis de la instrucción if...else es el siguiente:

if ( condicion ) { // Sentencias cuando la condición es true } else { // código que se ejecuta en otro caso } Ejemplo 13: En base al ejemplo anterior muestra un mensaje de acuerdo a la condición.

<html>

<head>

<title>Ejemplo 13</title>

</head>

<body>

<?php

$animo = "triste";

if ( $animo == "feliz" )

{

echo “Hoy, yo tendré un Buen día”;

}

else

{

echo “ No estoy feliz, estoy $animo";

}

?>

</body>

</html>

El mensaje que muestra el ejmplo 13, es el correspondiente a la parte else, atl como se muestra en la

siguiente figura:

If Anidados.

La sentencias if se pueden anidar, es decir, se puede poner dentro de un bloque if otras sentencias if, lo

cual proporciona una flexibilidad completa para ejecuciones condicionales.

Ejemplo 14: Utilizando ifs anidados, se compara 3 números para conocer cual es el mayor de ellos.

<HTML>

<HEAD>

<TITLE>ESTRUCTURA DE CONTROL</TITLE>

</HEAD>

<BODY>

<CENTER>

<H2>Sentencia if</I></H2>

<?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){

if($a>$c){

echo $a;

}

}

if($b>$a){

if($b>$c){

echo $b;

}

}

if($c>$a){

if($c>$b){

echo $c;

}

}

echo "</B>";

?>

</CENTER>

</BODY>

</HTML>

El resultado del ekemplo anterior es:

Otra forma de implementar los if anidados es: if ( condicion ) { // código a ejecutarse cuando la expresión es true } elseif ( otra condicion ) { // código a ejecutarse si la condición anterior fue false // y la segunda es true else { // código a ejecutarse en otros casos. Todas las condiciones false }

Ejemplo 15: Modificación del ejemplo anterior, indicando con elseif.

<HTML>

<HEAD>

<TITLE>ESTRUCTURA DE CONTROL</TITLE>

</HEAD>

<BODY>

<CENTER>

<H2>sentencia if</I></H2>

<?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;

}

elseif ($b>$a && $b>$a){

echo $b;

}

else

{

echo $c;

}

echo "</B>";

?>

</CENTER>

</BODY>

</HTML>

Sentencia Condicional Multiple.

Este tipo de sentencias, se utiliza para comparar un dato con conjunto posible de valores. La sintaxis es la

siguiente:

switch ( expression ) { case resultado1:

// Ejecuta esto si la expresión toma el resultado1 break; case resultado2: // Ejecuta esto si la expresión toma el resultado2 break; default: // Ejecuta esto si la expresión no es ningún resultado anterior. }

Nota: Pueden existir tantas cláusulas cases posibles como resultados diferentes se tengan.

Ejemplo 16: Aplicación de la sentencias switch para comparar el estado de animo de una persona. <html> <head> <title>Ejemplo 16</title> </head> <body> <?php $animo= "triste"; switch ( $animo ) { case "feliz": echo "Hoy yo estoy feliz"; break; case "triste": echo "Ahh. Me siento muy triste!"; break; default: echo "No estoy ni feliz, ni triste, sino $animo"; } ?> </body> </html>

Existe una sintaxis alternativa de la estructura switch, que sustituye el carácter “{´” por el carácter “:” y el carácter “}” por la palabra endswitch. switch ( expression ): case resultado1: // ejecuta esto si la expresión toma el resultado1 break; case resultado2: // ejecuta esto si la expresión toma el resultado2 break; default: // ejecuta esto si la expresión no es ningún resultado anterior. endswitch; Operador ? Una forma rápida de establecer una condición, es a través del operador de condición “?”, que nos permite

evaluar una condición y realizar la operación si es o no verdadero el resultado. La sintaxis es la siguiente:

( expresion )?operación si la condición es true: operación si la condición es false;

Ejemplo 17: Utilización del operador ? para establecer una condición. <html> <head> <title>Ejemplo </title> </head> <body> <?php $animo = "triste"; $texto = ( $animo=="feliz" )?"Hoy será un buen día":"No estoy feliz porque estoy $animo"; echo "$texto"; ?> </body> </html>

Observa que en el ejemplo anterior, la variable texto, toma el resultado de evaluar la condición. Para este caso mostrara el mensaje No estoy feliz porque estoy triste