Una constante es un identificador de un dato que no cambia de valor durante toda la ejecución de un programa. El intento de cambiar su valor provocará un error.
La función define nos permite declarar una constante (pi) y su valor:
define("pi",3.14156);
Si queremos averiguar si una constante está definida o no, se puede utilizar la función defined:
defined("pi");
Esta función devolverá:
- True (si la constante ya está definida)
- False (si aún no está definida)
Desde la versión PHP 5.3 tenemos otro modo para definir una constante (fuera de una clase), mediante la palabra clave const:
const pi = 3.14156;
Veamos este ejemplo:
<?php define("miConstante",2); if (defined("miConstante")) echo "ya definida"; // imprimirá "definida" else echo "no definida"; ?>
Tal como se puede observar en el ejemplo, la nomenclatura de las constantes difiere de la nomenclatura de las variables. Una constante puede comenzar con una letra o guión bajo (no empiezan con el símbolo $), seguido por letras, números o guiones bajos. En este caso se entiende por letra a los caracteres a-z, A-Z y además a los caracteres ASCII desde 127 a 255. Cuando se utiliza una constante se debe tener en consideración lo siguiente:
- El ámbito de una constante es global sin necesidad de utilizar global ni $GLOBALS.
- Una constante se puede definir en una función e igualmente tendrá ámbito global.
- Las constantes sólo pueden ser de tipo booleano, entero, coma flotante o cadena.
- Una constante no puede reinicializarse.
Constantes predefinidas
PHP incluye un extenso conjunto de constantes predefinidas. La lista completa de constantes predefinidas dependerá de las extensiones que se hayan cargado, aunque hay constantes predefinidas que siempre están presentes. Entre las que siempre están presentes, éstas son algunas de las más utilizadas:
- PHP_VERSION: Indica la versión de PHP que se está utilizando. En este caso, es 6.0.0-dev.
- PHP_OS: Nombre del sistema operativo en que se ejecuta PHP.
- TRUE: Valor verdadero (1)
- FALSE: Valor falso.
- E_ERROR: Indica los errores de interpretación que no se pueden recuperar.
- E_PARSE: Indica que el intérprete se detuvo en un error de sintaxis de la secuencia de comandos, del que no se puede recuperar.
- E_ALL: Representa a todas las constantes que empiezan por E_.
<?php define("CR", "<BR>"); echo PHP_VERSION . CR; // imprime 6.0.0-dev echo PHP_OS . CR; // imprime WINNT ?>
Constantes "mágicas" de PHP
Además de las constantes predefinidas citadas en la sección anterior PHP suministra otras constantes que se pueden utilizar en el código, pero que su disponibilidad depende de las extensiones utilizadas en la configuración.
- __LINE__: Número de línea del archivo.
- __FILE__: Ruta de acceso completa y el nombre del archivo vigente.
- __DIR__: El directorio utilizado en el archivo vigente. La constante no incluye la barra final salvo que se trate del directorio raíz.
- __FUNCTION__: Nombre de la función.
- __CLASS__: Nombre de la clase.
- __METHOD__: Nombre del método de la clase.
- __NAMESPACE__: Nombre del espacio de nombres vigente.