PHP provides a large number of predefined constants to any script which it runs. Many of these constants, however, are created by various extensions, and will only be present when those extensions are available, either via dynamic loading or because they have been compiled in.
    There are eight magical constants that change depending on
    where they are used.  For example, the value of
    __LINE__ depends on the line that it's
    used on in your script. These special constants are 
    case-insensitive and are as follows:
   
| Name | Description | 
|---|---|
| __LINE__ | The current line number of the file. | 
| __FILE__ | The full path and filename of the file with symlinks resolved. If used inside an include, the name of the included file is returned. | 
| __DIR__ | The directory of the file. If used inside an include, the directory of the included file is returned. This is equivalent to dirname(__FILE__). This directory name does not have a trailing slash unless it is the root directory. | 
| __FUNCTION__ | The function name. | 
| __CLASS__ | The class name. The class name includes the namespace it was declared in (e.g. Foo\Bar). Note that as of PHP 5.4 __CLASS__ works also in traits. When used in a trait method, __CLASS__ is the name of the class the trait is used in. | 
| __TRAIT__ | The trait name. The trait name includes the namespace it was declared in (e.g. Foo\Bar). | 
| __METHOD__ | The class method name. | 
| __NAMESPACE__ | The name of the current namespace. | 
See also get_class(), get_object_vars(), file_exists() and function_exists().
| Version | Description | 
|---|---|
| 5.4.0 | Added __TRAIT__constant | 
| 5.3.0 | Added __DIR__and__NAMESPACE__constants | 
| 5.0.0 | Added __METHOD__constant | 
| 5.0.0 | Before this version values of some magic constants were always lowercased. All of them are case-sensitive now (contain names as they were declared). | 
| 4.3.0 | Added __FUNCTION__and__CLASS__constants | 
| 4.0.2 | __FILE__always contains an absolute path with symlinks
          resolved whereas in older versions it contained relative path
          under some circumstances |