Constantes

Una constante es un identificador (nombre) para un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecución del script. Por defecto, una constante distingue mayúsculas y minúsculas. Por convención, los identificadores de constantes siempre se declaran en mayúsculas.

define(nombre,valor[,case_sensitive]);

Adicionalmente hay un tipo de constantes mágicas, que no son necesario declarar y en el fondo no son constantes porque toman el valor adecuado según el caso en el que se les use

Son pocas las constantes incluidas en PHP. Todas con el formato M_x_y

1. Contantes

Define constantes en tiempo de ejecución. Se puede acceder a constantes desde cualquier sitio del script sin importar desde donde, es decir se comportan como variables globales.

define('NOMBRE','Kike');
define('NUM3',254);
define("PRIMER_NOMBRE",'Juan');
define('N',0.03);
define('FLAG',true);
define('X',null);
define('CONST','Hola mundo',true);
echo CONST;    //Hola mundo
echo Const;    //Hola mundo

Desde PHP 7.0 se permite crear constante de matriz.

define('ANIMAL',array('Perro','Gato','Pollo'));
echo ANIMAL[2];   //Pollo

2. Contantes mágicas

Muchas de estas constantes, sin embargo, son creadas por diferentes extensiones, y sólo estarán presentes si dichas extensiones están disponibles, bien por carga dinámica o porque han sido compiladas.

Todas estas constantes mágicas se resuelven durante la compilación, a diferencia de las constantes normales que lo hacen durante la ejecución.

Contantes mágicas
nombredescripción
__LINE__El número de línea actual en el archivo script.
__FILE__Ruta completa y nombre del fichero con enlaces simbólicos resueltos. Si se usa dentro de un include, devolverá el nombre del archivo incluido.
__DIR__Directorio del archivos. Si se utiliza dentro de un include, devolverá el directorio del archivo incluído. Esta constante es igual que dirname(__FILE__). El nombre del directorio no lleva la barra final a no ser que esté en el directorio root.
__FUNCTION__Nombre de la función.
__CLASS__Nombre de la clase. El nombre de la clase incluye el namespace declarado en (Ej: Foo\Bar). Tenga en cuenta que a partir de PHP 5.4 __CLASS__ también funciona con traits. Cuando es usado en un método trait, __CLASS__ es el nombre de la clase del trait que está siendo usado.
__TRAIT__El nombre del trait. El nombre del trait incluye el espacio de nombres en el que fue declarado (Ej: Foo\Bar).
__METHOD__Nombre del método de la clase.
__NAMESPACE__Nombre del espacio de nombres actual.

Por ejemplo, el valor de __LINE__ depende de la línea en que se use en el archivo script.

3. Contantes matemáticas

Son ciertas constantes del sistema que tienen valores numéricos de uso comun.

Constantes matemáticas
nombredescripción
M_PILa constante PI (3.1416...)
M_PI_2La conteste medio PI.
M_PI_4La constante un cuarto de PI.
M_1_PILa constante inversa de PI
M_2_PILa constante 2/PI
M_2_SQRTPI2/sqrt(M_PI)
M_ELa constante e.
M_SQRT2La raiz de 2.
M_SQRT1_2La inversa de la raiz de 2
M_LOG2ELogaritmo base 2 de e.
M_LOG10ELogaritmo base 10 de e.
M_LN2Logaritmo neperiano al cuadrado
M_LN10Logaritmo neperiano al cuadrado

4. Funciones de contantes

Funciones de constantes
FunciónDescripción
defined()Comprueba si una contantes existe.