File & Directory Constants Current file You can get the name of the current PHP file (with the absolute path) using the __FILE__ magic constant. This is most often used as a logging/debugging technique. Current directory To get the absolute path to the directory where the current file is located use the __DIR__ magic constant. To get the absolute path to the directory where the current file is located, use dirname(__FILE__). Getting current directory is often used by PHP frameworks to set a base directory: Separators Windows system perfectly understands the `/` in paths so the
`DIRECTORY_SEPARATOR` is used mainly when parsing paths. Besides magic constants PHP also adds some fixed constants for working with paths: `DIRECTORY_SEPARATOR` constant for separating directories in a path. Takes value `/` on *nix, and `\` on Windows.
The example with views can be rewritten with: - Rarely used
PATH_SEPARATOR constant for separating paths in the $PATH environment variable. It is ; on Windows, : otherwise Magic constants are distinguished by their __CONSTANTNAME__ form. There are currently 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 current function name | __CLASS__ | The class name. The class name includes the namespace it was declared in (e.g. Foo\Bar). 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. | Most common use case for these constants is debugging and logging |