PHP 向它运行的任何脚本提供了大量的预定义常量(魔术常量)。有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
魔术常量 | 含义 |
---|---|
__LINE__ | 显示当前文件的行号 |
__FILE__ | 显示当前文件的完整路径和文件名 |
__DIR__ | 显示当前文件所在的目录 |
__FUNCTION__ | 显示函数的名称 |
__CLASS__ | 显示类的名称 |
__METHOD__ | 显示类的方法名 |
__NAMESPACE__ | 显示当前的命名空间 |
__TRAIT__ | 实现了代码复用的一个方法 |
1. __LINE__
__LINE__
可以获得当前的行号。
示例如下。
<?php
echo '这是第'.__LINE__.'行';
?>
输入如下。
这是第2行
2. __FILE__
__FILE__
可以获取当前文件的路径和文件名拼接成的字符串。
示例如下。
<?php
echo '当前文件路径和文件名为:'.__FILE__;
?>
输出如下。
当前文件路径和文件名为:D:\myfile\phpstudy\phpstudy_pro\WWW\test.php
3. __DIR__
__DIR__
可以获取当前文件的路径名。
示例如下。
<?php
echo '当前文件路径名为:'.__DIR__;
?>
输出如下。
“d:\myfile\phpstudy\phpstudy_pro\WWW\test.php”
当前文件路径名为:D:\myfile\phpstudy\phpstudy_pro\WWW
4. __FUNCTION__
__FUNCTION__
可以获取当前函数的函数名。
示例如下。以下例子在函数test1
和test2中各自调用了``__FUNCTION__
这个魔术常量。
<?php
function test1(){
echo '当前函数名为'.__FUNCTION__;
function test2(){
echo '当前函数名为:'.__FUNCTION__;
}
test2();
}
test1();
?>
输出如下。
当前函数名为test1当前函数名为:test2
5. __CLASS__
__CLASS__
可以显示当前的类名。
示例如下。在Test
类中定义了一个方法getClassName()
用于输出类名。
<?php
class Test{
function getClassName(){
echo '当前类名为:'.__CLASS__;
}
};
$test = new Test;
$test->getClassName();
?>
输出如下。
当前类名为:Test
6. __FUNCTION__
__CLASS__
可以显示当前的类名。
示例如下。在Test
类中定义了一个方法getMethodName()
用于输出类名。
<?php
class Test{
function getMethodName(){
echo '当前类的方法名为:'.__METHOD__;
}
};
$test = new Test;
$test->getMethodName();
?>
输出如下。
当前类的方法名为:Test::getMethodName
7. __NAMESPACE__
__NAMESPACE__
显示当前的命名空间。
示例如下。
<?php
namespace MyProject;
echo '当前的命名空间为:'.__NAMESPACE__;
?>
输出如下。
当前的命名空间为:MyProject