Constantes Mágicas de PHP
Al igual que el lenguaje provee de unos métodos mágicos predefinidos para realizar diferentes acciones, también provee de unas constantes predefinidas para obtener información del código contenido en el script que estamos ejecutando.
PHP ofrece un largo número de constantes predefinidas a cualquier script en ejecució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.
Las constantes mágicas al igual que los métodos mágicos comienzan con dos barras inferiores (__), pero a diferencia de estos últimos las constantes también acaban con las dos barras inferiores, además son sensibles a si se escriben con mayúsculas o minúsculas, siendo la única forma correcta las mayúsculas. Con estas características lo tenemos muy fácil para detectarlas al leer un código, incluso si no las conocemos sabremos por su forma de escribirlas de que se trata.
Hay ocho constantes predefinidas que cambian dependiendo de donde son usadas. Por ejemplo el valor de __LINE__ depende en la línea que se use en el script. Estas constantes especiales son las siguientes:
Nombre | Descripción |
__LINE__ | El número de línea actual en el fichero.
Esta constante nos devuelve la linea exacta donde esta situada en el fichero, puede ser muy útil para trazar errores o crear logs en nuestras aplicaciones. |
__FILE__ | Nos devuelve la 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 inicial a no ser que esté en el directorio root.
En resumen esta constante nos devuelve el nombre del directorio donde está incluido el script, y al igual que __LINE__ puede ser muy útil para trazar bugs. |
__FUNCTION__ | Nombre de la función.
Si la usamos dentro de una función nos devolverá el nombre del la función que la contiene. |
__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.
Al igual que __FUNCTION__ nos devuelve el nombre de la clase donde esta declara. |
__TRAIT__ | El nombre de el trait. El nombre del trait incluye el namespace si alguno fue declarado en (p.e.j. Foo\Bar).
Esta constante devuelve el nombre del Trait donde fue declarada, y en caso de haber sido declarado un namespace también lo devuelve. |
__METHOD__ | Nombre del método de la clase.
Es la hermana gemela de __FUNCTION__ solo que enfocada a los métodos, su función es exactamente la misma, devolver el nombre del método que la contiene. |
__NAMESPACE__ | Nos devuelve el namespace donde está declarada. |
Fuentes:
http://php.net/manual/es/language.constants.predefined.php
http://www.nazariglez.com/2013/02/21/tutorial-php-conociendo-las-constantes-magicas/
Fabián Vera liked this on Facebook.
Mariana Lopez liked this on Facebook.
Samuel Arellano liked this on Facebook.
Aarón-Stuart Linux-Luna liked this on Facebook.
Sandra Flores liked this on Facebook.
Dave López liked this on Facebook.
Adolfo Parra Negrete liked this on Facebook.
Wendy Garcia liked this on Facebook.
Jorge Diaz liked this on Facebook.
Orlando Contreras liked this on Facebook.