constantes en php programación en internet ii. constantes en php programación en internet ii...

22
Constantes en PHP Programación en Internet II

Upload: natanael-velazco

Post on 22-Jan-2016

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHPProgramación en Internet II

Page 2: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Las constantes: pocos datos que no cambiaremos

Una variable que no vamos a modificar

Algunas veces, necesitaremos que el valor que almacenamos en una variable no se modifique aunque cometamos un error.

Page 3: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Es decir, necesitamos que el valor almacenado permanezca idéntico, constante, hasta que el intérprete de PHP termine de procesar nuestra página.

Page 4: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

En esos casos, en vez de una variable nos convendría usar una constante.

A diferencia de las variables, es imposible definirles un valor mediante un operador de asignación (el signo igual), lo que facilita que “ni por error” alteremos su valor durante toda su vida útil, ya que siempre almacenarán el mismo valor.

Page 5: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Las constantes se definen con la función define(), que necesita que coloquemos dos elementos separados por una coma:

El nombre de la constante y su valor.

define(“NOMBRE”, “Valor”);

define(“NOMBRE”, 123);

Page 6: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Veamos un ejemplo de su sintaxis:

<?phpdefine ("PI", 3.1415926);define ("BR", "<br />");define ("LIBRO", "PHP 6");print(PI);print(BR);print(LIBRO);?>

Page 7: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Muy importante:

Al momento de mostrar constantes (con echo o print), las constantes no van entre comillas (no son una cadena de texto a imprimir literalmente) ni llevan un signo de pesos por delante (no son una variable).

Page 8: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Además, al definirlas, habitualmente se escribe su nombre totalmente en MAYÚSCULAS para poder diferenciarlas a simple vista de las variables y de los textos literales.

Recordemos lo importante que es facilitar la lectura de nuestro código.

Page 9: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Utilizaremos constantes muy a menudo en nuestros proyectos, para almacenar datos de conexión a base de datos, usuarios y contraseñas, y cualquier otra información que necesitemos almacenar sin riesgos de que la modifiquemos en otra parte de nuestro código.

Page 10: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Includes de constantes

Es una muy buena idea definir todas las constantes de un sitio Web en un archivo aparte, y luego incluir ese archivo (mediante include o require) en todas las páginas que necesiten utilizar esas constantes.

Es una técnica muy utilizada en sitios multilenguaje, que definen constantes para los textos y usan un archivo para definir esos textos en cada idioma.

Page 11: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Veamos un ejemplo de esta técnica:

imaginemos un sitio Web con versión en español y en inglés.

Existirán dos archivos que almacenarán constantes, uno de los textos en español y otro con los textos en inglés.

Page 12: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Por ejemplo, dentro de la carpeta lenguajes crearemos un archivo llamado englis.php que contendrá solamente esto:

<?phpdefine ('NAVBAR_TITLE', 'My Account');define ('HEADING_TITLE', 'My Account Information');define ('OVERVIEW_TITLE', 'Overview');define ('OVERVIEW_SHOW_ALL_ORDERS', '(show all orders)');define (OVERVIEW_PREVIOUS_ORDERS', 'Previous Orders');?>

Page 13: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Y, dentro de otro archivo denominado castellano.php colocaremos la traducción al español de esas mismas constantes:

<?phpdefine ('NAVBAR_TITLE', 'Mi cuenta');define ('HEADING_TITLE', 'Datos de mi cuenta');define ('OVERVIEW_TITLE', 'Resumen');define ('OVERVIEW_SHOW_ALL_ORDERS', '(Ver todos mis pedidos)');define (OVERVIEW_PREVIOUS_ORDERS', 'Pedidos anteriores');?>

Page 14: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

De esta manera con indicar dentro de cada página el idioma que se mostrará (típicamente con una variable de sesión), podremos incluir el archivo de texto correspondiente al idioma elegido por el usuario.

Page 15: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Por ejemplo, si preparamos una página llamada cuenta.php que debe mostrar esos textos en castellano, su código será similar a esto:

<!DOCTYPE html><html><?php include ('lenguajes/castellano.php'); ?><head><title><?php print (NAV_TITLE); ?></title></head>

Page 16: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

<body><h1><?php print (HEADIN_TITLE); ?></h1><h2><?php print (OVERVIEW_TITLE); ?></h2><ul><li><a href="show_all_orders.php"><?php print (OVERVIEW_SHOW_ALL_ORDERS); ?></a></li><li><a href="show_previous_orders.php"><?php print (OVERVIEW_PREVIOUS_ORDERS); ?></a></li></ul></body></html>

Page 17: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Notemos que no hemos incluido constantes dentro de bloques de texto delimitados con comillas simples o dobles, como hacemos cuando queremos asignar un valor a una variable, ya que esto no funcionaría.

Tampoco funcionaría colocarlas dentro de un echo o print junto con un texto envuelto entre comillas.

Page 18: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Veamos por qué:

<!DOCTYPE html><html><head><title>Constantes</title></head><body><h1><?php print ("Bienvenido a HEADING_TITLE"); ?></h1><!-- No se reemplazará por su valor, se escribirá el texto HEADING_TITLE tal cual -->

Page 19: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

<h2><?php print ('Hola OVERVIEW_TITLE'); ?></h2><!-- Tampoco se reemplazará por su valor, se escribirá el texto OVERVIEW_TITLE tal cual --><?php$comillasDobles="Texto entre comillas dobles, tampoco puede contener constantes como HEADING_TITLE porque no se reemplazarán por su valor";#comillas sencilas='Texto entre comillas simples, tampoco puede contener constantes como HEADING_TITLE porque no se reemplazarán por su valor';?>

Page 20: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

<!-- No se reemplazarán las constantes por su valor --></body></html>

Page 21: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

El motivo es que, dentro de esos bloques de texto, al no estar identificado el nombre de la constante con ningún signo especial (como el signo $ que se utiliza para indicar que algo es una variable), al intérprete de PHP no tiene forma de detectar que se trata de una constante y no de una palabra común que, simplemente, tiene que escribir letra por letra.

Page 22: Constantes en PHP Programación en Internet II. Constantes en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa

Constantes en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Para remediar esta limitación, utilizaremos la técnica denominada concatenación.

Por ejemplo:

$concatenando ="Texto concatenado con una constante '.HEADING_TITLE.' que ahora sí se reemplazará por su valor";

Así que siempre que intercalemos constantes, debemos concatenarlas.