PHP proporciona una gran cantidad de constantes predefinidas para cualquier script que ejecute.
Sin embargo, muchas constantes están definidas por diferentes bibliotecas de extensión y solo aparecerán cuando estas bibliotecas de extensión se carguen, ya sea cargadas dinámicamente o incluidas en el momento de la compilación.
Hay ocho constantes mágicas cuyos valores cambian según su ubicació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 y son las siguientes:
El número de línea actual en el archivo.
<?php eco ' Esta es la línea número " ' . __LINE__ . ' " > ?
El resultado de salida del ejemplo anterior es:
Esta es la línea "2"
La ruta completa y el nombre del archivo. Si se usa dentro de un archivo incluido, devuelve el nombre del archivo incluido.
Desde PHP 4.0.2, __FILE__ siempre contiene una ruta absoluta (o la ruta absoluta resuelta en el caso de un enlace simbólico), mientras que las versiones anteriores a veces contenían una ruta relativa.
Ejemplo:
<?php eco ' El archivo está ubicado en " ' . __FILE__ . ' " ' ? >
El resultado de salida del ejemplo anterior es:
El archivo se encuentra en "E:wampwwwtestindex.php"
El directorio donde se encuentra el archivo. Si se usa dentro de un archivo incluido, devuelve el directorio donde se encuentra el archivo incluido.
Es equivalente a dirname(__FILE__). Los nombres de directorio no incluyen la barra diagonal final a menos que sean el directorio raíz. (Nuevo en PHP 5.3.0)
<?php eco ' El archivo está ubicado en " ' . __DIR__ . ' " ' ? >
El resultado de salida del ejemplo anterior es:
El archivo se encuentra en " E:wampwwwtest "
Nombre de la función (nuevo en PHP 4.3.0). Desde PHP 5, esta constante devuelve el nombre de la función cuando se definió (distingue entre mayúsculas y minúsculas). En PHP 4 este valor siempre está en minúscula.
<?php función prueba ( ) { eco ' Nombre de la función : ' __FUNCIÓN__ ; prueba ( ) ;
El resultado de salida del ejemplo anterior es:
Nombre de la función: prueba
El nombre de la clase (nuevo en PHP 4.3.0). Desde PHP 5, esta constante devuelve el nombre de la clase cuando se definió (distingue entre mayúsculas y minúsculas).
En PHP 4 este valor siempre está en minúscula. El nombre de la clase incluye el ámbito en el que se declara (por ejemplo, FooBar). Tenga en cuenta que desde PHP 5.4 __CLASS__ también funciona para rasgos. Cuando se usa dentro de un método de rasgo, __CLASS__ es el nombre de la clase que llama al método de rasgo.
<?php clase prueba { función _imprimir ( ) { eco ' Nombre de clase : ' __CLASS__ " <br> " ; ' Nombre de la función : ' __FUNCIÓN__ ; } $t = nuevo prueba ( ) ; $t -> _imprimir ( ) ? >
El resultado de salida del ejemplo anterior es:
Nombre de clase: prueba Nombre de función: _print
El nombre del rasgo (nuevo en PHP 5.4.0). Desde PHP 5.4.0, PHP ha implementado un método de reutilización de código llamado rasgos.
El nombre del rasgo incluye el ámbito en el que se declara (por ejemplo, FooBar).
Los miembros heredados de la clase base son anulados por el método MyHelloWorld en el rasgo SayWorld insertado. Su comportamiento es coherente con los métodos definidos en la clase MyHelloWorld. El orden de precedencia es que los métodos de la clase actual anulan los métodos de rasgo, que a su vez anulan los métodos de la clase base.
<?php clase Base { público función decir hola ( ) { eco ' Hola ' ; } } rasgo decir mundo { público función decir hola ( ) { padre :: decir Hola ( ) ; ' ¡Mundo! ' ; } } clase MiHolaMundo se extiende Base { usar decir mundo ; } $o = nuevo MiHolaMundo ( ) ; $o -> decirHola ( ) ? >
La rutina anterior generará:
¡Hola Mundo!
El nombre del método de la clase (nuevo en PHP 5.0.0). Devuelve el nombre del método tal como se definió (distingue entre mayúsculas y minúsculas).
Ejemplo:
<?php función prueba ( ) { eco ' Nombre de la función : ' __MÉTODO__ ; prueba ( ) ;
El resultado de salida del ejemplo anterior es:
Nombre de la función: prueba
El nombre del espacio de nombres actual (distingue entre mayúsculas y minúsculas). Esta constante se define en el momento de la compilación (nueva en PHP 5.3.0).
Ejemplo:
<?php espacio de nombres MiProyecto ; eco ' El espacio de nombres es: " ' , __NAMESPACE__ , ' " ' // Salida "MiProyecto" ; ?>
El resultado de salida del ejemplo anterior es:
El espacio de nombres es: "MiProyecto"