PHP Magic Constants
In PHP, there are a set of predefined constants that are always available during the execution of any script. These constants are called magic constants, and they are used to provide information about the script, such as the script's path, line number, name, etc.
In this article, we'll take a closer look at PHP's magic constants, how to use them, and their important points.
Magic Constants Syntax
Magic constants are accessed using the predefined constants in PHP and are not encapsulated in any function or class. Here's a list of the available magic constants in PHP:
Constant | 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 included file, the name of the included file is returned. |
__DIR__ |
The directory of the file. If used inside an included file, the directory of the included file is returned. This is equivalent to dirname(__FILE__) . |
__FUNCTION__ |
The name of the current function or method. |
__CLASS__ |
The name of the current class. |
__TRAIT__ |
The name of the current trait. |
__METHOD__ |
The name of the current class method. |
__NAMESPACE__ |
The name of the current namespace. |
ClassName::class |
The fully qualified name of the ClassName. |
Magic Constants Example
Here's an example that demonstrates how to use magic constants in PHP:
<?php
echo "The current line number is: " . __LINE__ . "\n";
echo "The current file name is: " . __FILE__ . "\n";
echo "The current directory is: " . __DIR__ . "\n";
function foo() {
echo "The name of the current function is: " . __FUNCTION__ . "\n";
}
class Bar {
public function baz() {
echo "The name of the current class is: " . __CLASS__ . "\n";
echo "The name of the current method is: " . __METHOD__ . "\n";
echo "The name of the current trait is: " . __TRAIT__ . "\n";
echo "The name of the current namespace is: " . __NAMESPACE__ . "\n";
}
}
$bar = new Bar();
$bar->baz();
Output:
The current line number is: 2
The current file name is: /path/to/file.php
The current directory is: /path/to
The name of the current function is: foo
The name of the current class is: Bar
The name of the current method is: Bar::baz
The name of the current trait is:
The name of the current namespace is:
Magic Constants Explanation
- The
__LINE__
constant returns the current line number of the file where it is used. - The
__FILE__
constant returns the full path and filename of the file where it is used, with symlinks resolved. If used inside an included file, the name of the included file is returned. - The
__DIR__
constant returns the directory of the file where it is used. If used inside an included file, the directory of the included file is returned. - The
__FUNCTION__
constant returns the name of the current function or method where it is used. - The
__CLASS__
constant returns the name of the current class where it is used. - The
__TRAIT__
constant returns the name of the current trait where it is used. - The
__METHOD__
constant returns the name of the current class method where it is used. - The
__NAMESPACE__
constant returns the name of the current namespace where it is used. - The
ClassName::class
constant returns the fully qualified name of the ClassName.
Magic Constants Use
Magic constants can be used to provide contextual information about the script and can be used in debugging or logging information. They can also be used to provide information about the current namespace, class, and function/method, which is useful in object-oriented programming.
Important Points
- Magic constants are predefined constants in PHP that provide information about the script.
- Magic constants are accessed using the predefined constants in PHP and are not encapsulated in any function or class.
- Magic constants can be used to provide contextual information about the script, such as the script's path, line number, name, namespace, class, and function/method.
- Magic constants can be useful in debugging or logging information.
Summary
PHP provides a set of predefined constants, called magic constants, which provide information about the script's path, line number, name, namespace, class, and function/method. Magic constants can be useful in providing contextual information about the script and can be used in logging or debugging. They are accessed using predefined constants and are not encapsulated in any function or class.