Constantes en PHP

Constantes en PHP
COMPÁRTELO:

Las Constantes en PHP: 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.

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

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.

Las Constantes en PHP 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.

Veamos un ejemplo de su sintaxis:

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

Muy importante: al momento de mostrar Constantes en PHP (con echo o print), las Constantes en PHP 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).

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.

Utilizaremos Constantes en PHP 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.

Includes de Constantes en PHP

Es una muy buena  idea definir todas las Constantes en PHP 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 en PHP. Es una técnica muy utilizada en sitios multilingües, que definen Constantes en PHP para los textos y usan un archivo para definir esos textos en cada idioma.

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 en PHP, uno de los textos en español y otro con los textos en inglés. 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');
?>

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

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

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

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

Notemos que no hemos incluido Constantes en PHP 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.

Veamos por qué:

<!DOCTYPE html>
<html>
<head>
<title>Constantes en PHP</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 -->
<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 en PHP como HEADING_TITLE porque no se reemplazarán por su valor";
#comillas sencilas='Texto entre comillas simples, tampoco puede contener Constantes en PHP como HEADING_TITLE porque no se reemplazarán por su valor';
?>
<!-- No se reemplazarán las Constantes en PHP por su valor -->
</body>
</html>

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. 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 en PHP, debemos concatenarlas.

Compártelo:

⇐Anterior


Concatenación en PHP

Siguiente ⇒


Matrices en PHP

Profesor de la Universidad de Guadalajara

Hugo Delgado Desarrollador y Diseñador Web en Puerto Vallarta

Profesional en Desarrollo y Posicionamiento Web desde hace más de 10 años continuos.
Contamos con más de 200 constancias y reconocimientos en la trayectoria Académica y Profesional, incluidos diplomados certificados por Google.

ARTÍCULOS RELACIONADOS:

0 Comentarios

 

Deja un Comentario

Recomendado para ti:

Posicionamiento Web en Motores de BúsquedaPosicionamiento Web en Motores de Búsqueda

El posicionamiento en buscadores o posicionamiento Web es el resultado de la recuperación de información en...