PHP ofrece un gran 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, bien por carga dinámica o porque han sido compiladas.
Hay nueve constantes mágicas que cambian dependiendo de
dónde se emplean. Por ejemplo, el valor de
__LINE__
depende de la línea en que se
use en el script. Todas estas constantes «mágicas» se resuelven
durante la compilación, a diferencia de las constantes normales que lo hacen durante la ejecución. Estas constantes especiales son sensibles a mayúsculas
Estas constantes especiales distinguen mayúsculas y minúsculas, y son las siguientes:
Nombre | Descripción |
---|---|
__LINE__ |
El número de línea actual en el fichero. |
__FILE__ |
Ruta completa y nombre del fichero con enlaces simbólicos resueltos. Si se usa dentro de un include, devolverá el nombre del fichero incluido. |
__DIR__ |
Directorio del fichero. Si se utiliza dentro de un include, devolverá el directorio del fichero 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 (p.e.j. 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 utilizado. |
__TRAIT__ |
El nombre del trait. El nombre del trait incluye el espacio de nombres en el que fue declarado (p.e.j. Foo\Bar). |
__METHOD__ |
Nombre del método de la clase. |
__NAMESPACE__ |
Nombre del espacio de nombres actual. |
ClassName::class |
El nombre de clase completamente cualificado. Véase también ::class. |
Véase también get_class(), get_object_vars(), file_exists() y function_exists().
Versión | Descripción |
---|---|
5.5.0 |
Se añadió la constante mágica ::class
|
5.4.0 |
Se añadió la constante __TRAIT__
|
5.3.0 |
Se añadieron las constantes __DIR__ y __NAMESPACE__
|
5.0.0 |
Se añadió la constante __METHOD__
|
5.0.0 | Antes de esta versión, los valores de algunas constantes mágicas estaban siempre en minúsculas. Ahora todas ellas están en mayúsculas (contienen nombres mientras eran declaradas). |
4.3.0 |
Se añadieron las constantes __FUNCTION__ y __CLASS__
|
4.0.2 |
__FILE__ siempre contiene una ruta absoluta con enlaces
simbólicos resueltos, mientras que en versiones antiguas contenía una ruta relativa
bajo algunas circunstancias
|