
En el lenguaje de programación PHP existen una serie de palabras reservadas o constantes que nos dan cierta información acerca de la ejecución en curso. Aunque se definen como constantes mágicas, realmente son constantes en el contexto en el que se estén ejecutando, ya que su valor depende del mismo.
Estas constantes mágicas pueden sernos de gran utilidad a la hora de obtener ciertos valores tales como el directorio actual, el archivo script que se está ejecutando, la clase del objeto en cuestión, etc. Podemos encontrar las siguientes:
__FILE__ define la ruta completa y el nombre del archivo que se está ejecutando. Es una constante bastante útil cuando estamos en procesos de depuración y para la determinación de rutas de directorios y archivos.
1 2 3 4 5 6 | echo __FILE__; echo dirname( __FILE__ ); //Salida /var/www/htdocs/archivo.php /var/www/htdocs |
Nota: Ten en cuenta que los nombres de estas constantes comienzan y acaban con dos caracteres seguidos de subrayado, no uno.
__DIR__ hace alusión al directorio del archivo que se está ejecutando. Y si es usado dentro de un include, devuelve el directorio del archivo incluido.
1 2 3 4 5 6 7 | //Para el ejemplo anterior echo __DIR__; //Salida /var/www/htdocs //Es el equivalente a dirname( __FILE__ ) |
__LINE__ indica el número de la línea actual del archivo que se esté ejecutando. Es una constante que se suele usar en los procesos de depuración. Al igual que en el caso anterior, si se usa dentro de un archivo de inclusión, la línea devuelta es la del archivo incluido.
__CLASS__ indica el nombre de la clase desde la que se realiza la llamada a esta constante.
1 2 3 4 5 6 7 8 9 10 | class Prueba { static function obtenerClase() { return __CLASS__; } } echo Prueba::obtenerClase(); //Salida Prueba |
__FUNCTION__ indica el nombre de la función o método actual, tanto dentro de las clases como para funciones fuera de ellas.
1 2 3 4 5 6 7 8 9 10 | class Prueba { static function miMetodo() { return __FUNCTION__; } } echo Prueba::miMetodo(); //Salida miMetodo |
__METHOD__ devuelve el nombre del método actual dentro de un objeto de una clase.
1 2 3 4 5 6 7 8 9 10 | class Prueba { static function miMetodo() { return __METHOD__; } } echo Prueba::miMetodo(); //Salida Prueba::miMetodo |
Estas son algunas de las más usadas constantes mágicas con las que nos provee el lenguaje de programación PHP, las cuales podemos usar en cualquier momento en nuestro código fuente, y que nos facilitan, sobretodo, la depuración del mismo.
