Objetivos Objetivos
  • Conocer la declaración de constantes
  • Conocer las principales constantes predefinidas
   
Fuentes de información Fuentes de información
Contenidos
Contenidos
 

1.- Introducción

Las variables son elementos fundamentales a la hora de trabajar con PHP. Aun así, están limitadas debido a que, en ocasiones, se requieren valores que no varíen y que puedan ser utilizados en diferentes partes del programa. En esta unidad hablaremos de las constantes que el usuario puede definir así como las que ya hay predefinidas en el propio lenguaje.

2.- Constantes

En ocasiones necesitamos la utilización de un mismo valor en diferentes lugares del programa. Una de las opciones pasa por definir el valor como una variable y usarlo, otra pasa por utilizar la constante, tal cual, en cada uno de los lugares en los que se requiere, y la última consiste en definir una constante para poder utilizarla posteriormente.

Una constante es un elemento similar a una variable pero con la peculiaridad de que su valor no se modifica. Además, en su definición, no se utiliza el símbolo dólar ($), de hecho el formato de la definición es el siguiente:

define("nombre_constante",valor)

Es decir, al igual que se hacía con las variables, las constantes también se definen a la vez que se les asigna un determinado valor que no variará. Lo que difiere en éstas con respecto a las variables es que son sensibles a mayúsulas por defecto y que, por convención, los identificadores de contantes siempre suelen declararse en mayúsculas. Con respecto al nombre se siguen las mismas reglas que en las etiquetas: debe comenzar por una letra o subguión, seguido por cualquier número o letras, números o subguiones.

Ejemplos de definición de constantes son:

  • define("PI",3.1416)
  • define("CONSTANTE","hola")
  • define ("PRUEBA","Hola a todos")

Hay que señalar que sólo se pueden definir constantes de los tipos escalares (boolean, integer, double, string), con lo que no podremos tener constantes de tipo Array ni Object.

Mostramos un programa en el que trabajamos con constantes y variables:

Y el resultado:

Si nos fijamos, las constantes no pueden ser insertadas junto con los strings dentro del echo porque si no se interpretarían como una cadena y no saldría el valor. Hemos de tener en cuenta que las variables tienen un símbolo al comienzo para poder ser identificadas, pero las constantes no. Si probamos el mismo programa pero insertando el nombre de las constantes en el string:

El resultado es el siguiente:

Otra posibilidad de declaración consiste en utilizar la directiva const del siguiente modo:

const nombre_constante = valor

En este caso, la definición es similar a la anterior ya que se le asigna un valor inicial que no podrá ser cambiado ni redefinido. Ejemplos de ello:

  • const PI = 3.1416
  • const CONSTANTE = "hola"
  • const PRUEBA = "Hola a todos"

Si utilizamos este tipo de definición en un programa tendremos:

Y el resultado:

 

Para obtener el valor de una constante solo es necesario especificar su nombre, aunque también se puede utilizar la función constant, a la cual le pasaremos el nombre de la constante, para leer el valor de ésta si se desea obtener el valor de una constante de forma dinámica. Veamos un ejemplo:

Y, por supuesto, el resultado:

 

 

Contenidos
Contenidos
   
 

3.- Constantes predefinidas

PHP ofrece un largo número de constantes predefinidas a cualquier script en ejecucción. Muchas de estas constantes, sin embargo, son creadas por diferentes extensiones, y sólo estarán presentes si dichas extensiones están disponibles, es decir, dependerán de la versión de PHP que tengamos instalada.

De este modo existen multitud de constantes predefinidas, aunque sólo ocho de ellas cambian su valor dependiendo de donde son usadas y se pueden diferenciar de las demás porque comienzan por un doble subrayado (__). Por ejemplo el valor de __LINE__ dependerá en la línea que se use en el script. Entre las principales encontramos:

Nombre Descripción
PHP_VERSION La versión actual de PHP en notación "mayor.menor.edición"
PHP_MAXPATHLEN La longitud máxima de los nombres de los ficheros (incluyendo directrorios)
PHP_OS El sistema operativo
PHP_INT_MAX El valor integer más grande soportado
__LINE__ Línea actual en el fichero
__FILE__ Ruta completa y nombre del fichero
__DIR__ Directorio del fichero
__FUNCTION__ Nombre de la función
__CLASS__ Nombre de la clase

Para verlas mejor vamos a crear un programa donde se impriman algunas de ellas:


Y el resultado: