PHP ofrece un largo número de constantes predefinidas a cualquier script en ejecucció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.
    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 sensibles a mayúsculas
    y son las siguientes:
   
| Nombre | Descripción | 
|---|---|
| __LINE__ | Línea actual en el fichero. | 
| __FILE__ | Ruta completa y nombre del fichero. Si se usa dentro de un include,
         devolverá el nombre del fichero del include.
         Desde PHP 4.0.2, __FILE__siempre contiene la
         ruta absoluta con symlinks resueltos, en otras versiones contenía
         la ruta relativa según las circunstancias. | 
| __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. (Fue añadida en PHP 5.3.0) | 
| __FUNCTION__ | Nombre de la función. (Añadida en PHP 4.3.0) Desde PHP 5 esta constante devuelve el nombre de la función donde fue declarada (sensible a mayúsculas). En PHP 4 su valor siempre es en minúsculas. | 
| __CLASS__ | Nombre de la clase. (Añadida en PHP 4.3.0) Desde PHP 5 esta constante devuelve el nombre de la clase donde fue declarada (sensible a mayúsculas). En PHP 4 su valor siempre es en minúsculas. 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. | 
| __TRAIT__ | El nombre de el trait. (Añadido en PHP 5.4.0) A partir de PHP 5.4 esta constante devuelve el trait que fué declarado (sensible a mayúsculas y minúsculas). El nombre de el trait incluye el namespace si alguno fué declarado en (p.e.j. Foo\Bar). | 
| __METHOD__ | Nombre del método de la clase. (Añadida en PHP 5.0.0.) Nombre del método devuelto donde fue declarada. (sensible a mayúsculas). | 
| __NAMESPACE__ | Nombre del espacio de nombres actual (sensible a mayúsculas). Esta constante se define en tiempo de compilación (Añadida en PHP 5.3.0) El nombre del namespace actual (sensible a mayúsculas). | 
Véase también get_class(), get_object_vars(), file_exists() y function_exists().