Existen varias constantes mágicas que cambian dependiendo de
dónde se utilicen. Por ejemplo, el valor de
__LINE__ depende de la línea en la que se
use en el script. Todas estas constantes "mágicas" se resuelven
en tiempo de compilación, a diferencia de las constantes regulares,
que se resuelven en tiempo de ejecución.
Estas constantes especiales no distinguen entre mayúsculas y minúsculas
y son las siguientes:
| Nombre | Descripción |
|---|---|
__LINE__ |
El número de línea actual del archivo. |
__FILE__ |
La ruta completa y el nombre del archivo con los enlaces simbólicos resueltos. Si se usa dentro de un include, se devuelve el nombre del archivo incluido. |
__DIR__ |
El directorio del archivo. Si se usa dentro de un include,
se devuelve el directorio del archivo incluido. Es equivalente a
dirname(__FILE__). El nombre del directorio
no incluye la barra final a menos que sea el directorio raíz.
|
__FUNCTION__ |
El nombre de la función, o {closure} para
las funciones anónimas.
|
__CLASS__ |
El nombre de la clase. El nombre de la clase incluye el espacio de
nombres en el que fue declarada (p. ej. Foo\Bar).
Cuando se usa en un método de trait, __CLASS__
es el nombre de la clase en la que se utiliza el trait.
|
__TRAIT__ |
El nombre del trait. El nombre del trait incluye el espacio de
nombres en el que fue declarado (p. ej. Foo\Bar).
|
__METHOD__ |
El nombre del método de la clase. |
__PROPERTY__ |
Solo es válido dentro de un hook de propiedad. Es igual al nombre de la propiedad. |
__NAMESPACE__ |
El nombre del espacio de nombres actual. |
ClassName::class |
El nombre completo cualificado de la clase. |