Constantes en PHP
Programación en Internet II
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
Es decir, necesitamos que el valor almacenado
permanezca idéntico, constante, hasta que el intérprete
de PHP termine de procesar nuestra página.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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);
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
Veamos un ejemplo de su sintaxis:
<?php
define ("PI", 3.1415926);
define ("BR", "<br />");
define ("LIBRO", "PHP 6");
print(PI);
print(BR);
print(LIBRO);
?>
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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).
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
Por ejemplo, dentro de la carpeta lenguajes crearemos un
archivo llamado englis.php que contendrá solamente esto:
<?php
define ('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');
?>
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
Y, dentro de otro archivo denominado castellano.php
colocaremos la traducción al español de esas mismas
constantes:
<?php
define ('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');
?>
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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>
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
<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>
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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 -->
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
<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';
?>
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
<!-- No se reemplazarán las constantes por su valor -->
</body>
</html>
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Constantes en PHP
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.
Programación en Internet II
Universidad de Guadalajara | Centro
Descargar

Diapositiva 1 - akus.net Diseño de páginas Web en Puerto Vallarta