PHP Constantes mágicas
PHP proporciona una gran cantidad de constantes predefinidas a cualquier script que ejecute.
Sin embargo, muchas constantes están definidas por distintas bibliotecas de extensiones y solo aparecen cuando dichas extensiones se han cargado, ya sea después de una carga dinámica o si ya se incluyeron en tiempo de compilación.
Hay ocho constantes mágicas cuyo valor cambia según su posición en el código.
Por ejemplo, el valor de __LINE__ depende de la línea en la que se encuentra en el script. Estas constantes especiales no distinguen entre mayúsculas y minúsculas, como se muestra a continuación:
__LINE__
El número de línea actual en el archivo.
Ejemplo
El resultado del ejemplo anterior es:
这是第 “ 2 ” 行
__FILE__
La ruta completa y el nombre del archivo. Si se usa en un archivo incluido, se devuelve el nombre del archivo incluido.
Desde PHP 4.0.2, __FILE__ siempre contiene una ruta absoluta (si es un enlace simbólico, la ruta absoluta resuelta), mientras que en versiones anteriores a veces contenía una ruta relativa.
Ejemplo:
Ejemplo
El resultado del ejemplo anterior es:
该文件位于 “ E:\wamp\www\test\index.php ”
__DIR__
El directorio donde se encuentra el archivo. Si se usa en un archivo incluido, se devuelve el directorio del archivo incluido.
Es equivalente a dirname(__FILE__). A menos que sea el directorio raíz, el nombre del directorio no incluye la barra final. (Nuevo en PHP 5.3.0)
Ejemplo
El resultado del ejemplo anterior es:
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
Nombre de la función (nuevo en PHP 4.3.0). Desde PHP 5, esta constante devuelve el nombre con el que se definió la función (distingue entre mayúsculas y minúsculas). En PHP 4, este valor siempre estaba en minúsculas.
Ejemplo
El resultado del ejemplo anterior es:
函数名为:test
__CLASS__
Nombre de la clase (nuevo en PHP 4.3.0). Desde PHP 5, esta constante devuelve el nombre con el que se definió la clase (distingue entre mayúsculas y minúsculas).
En PHP 4, este valor siempre estaba en minúsculas. El nombre de la clase incluye su área de declaración (por ejemplo, Foo\Bar). Ten en cuenta que desde PHP 5.4, __CLASS__ también funciona con traits. Cuando se usa en un método de trait, __CLASS__ es el nombre de la clase que llama al método del trait.
Ejemplo
El resultado del ejemplo anterior es:
类名为:test 函数名为:_print
__TRAIT__
Nombre del trait (nuevo en PHP 5.4.0). Desde PHP 5.4.0, PHP implementa un método de reutilización de código llamado traits.
El nombre del trait incluye su área de declaración (por ejemplo, Foo\Bar).
Los miembros heredados de la clase base son reemplazados por el método MyHelloWorld insertado por el trait SayWorld. Su comportamiento es el mismo que el método definido en la clase MyHelloWorld. El orden de prioridad es que los métodos de la clase actual sobrescriben los métodos del trait, y los métodos del trait sobrescriben los métodos de la clase base.
Ejemplo
El ejemplo anterior mostrará:
Hello World!
__METHOD__
Nombre del método de la clase (nuevo en PHP 5.0.0). Devuelve el nombre con el que se definió el método (distingue entre mayúsculas y minúsculas).
Ejemplo:
Ejemplo
El resultado del ejemplo anterior es:
函数名为:test
__NAMESPACE__
El nombre del espacio de nombres actual (distingue entre mayúsculas y minúsculas). Esta constante se define en tiempo de compilación (nuevo en PHP 5.3.0).
Ejemplo:
Ejemplo
El resultado del ejemplo anterior es:
命名空间为:"MyProject"Otras extensiones