PHP中有八个魔术常量,它们不是真正的常量,它们的值会随着它们在代码中位置的改变而变化。这些特殊的常量不区分大小写。
__LINE__:文件中的当前行号。
__FILE__:文件的完整路径和文件名。如果是在被包含的文件中使用,返回的是被包含的文件的路径,从PHP4.2起,__FILE__总是包含绝对路径,如果是符号链接,返回的是解析后的绝对路径。
__DIR__:PHP5.3新增,文件所在的目录。如果是在被包含的文件中使用,返回的是被包含的文件的目录。等价于dirname(__FILE__),除非是根目录,否则返回的目录不末尾不带斜杠。
__FUNCTION__:PHP4.3新增,函数名称。PHP4中返回的函数名是小写的,自PHP5起,返回的是函数定义时的名称。
__CLASS__:PHP4.3新增,类的名称。PHP4中返回的类名是小写的,自PHP5起,返回的是类定义时的名称。PHP5.4起,__CLASS__对trait也起作用,当在trait中使用时,__CLASS__返回的是调用trait方法的类的名字。
__TRAIT__:PHP5.4新增,返回trait被定义时的名字,包括其被声明的作用域。
__METHOD__:PHP5.0新增,返回类的方法被定义时的名字。
__NAMESPACE__:PHP5.3新增,返回当前命名空间的名称,在编译时定义。
__LINE__:文件中的当前行号。
__FILE__:文件的完整路径和文件名。如果是在被包含的文件中使用,返回的是被包含的文件的路径,从PHP4.2起,__FILE__总是包含绝对路径,如果是符号链接,返回的是解析后的绝对路径。
__DIR__:PHP5.3新增,文件所在的目录。如果是在被包含的文件中使用,返回的是被包含的文件的目录。等价于dirname(__FILE__),除非是根目录,否则返回的目录不末尾不带斜杠。
__FUNCTION__:PHP4.3新增,函数名称。PHP4中返回的函数名是小写的,自PHP5起,返回的是函数定义时的名称。
__CLASS__:PHP4.3新增,类的名称。PHP4中返回的类名是小写的,自PHP5起,返回的是类定义时的名称。PHP5.4起,__CLASS__对trait也起作用,当在trait中使用时,__CLASS__返回的是调用trait方法的类的名字。
__TRAIT__:PHP5.4新增,返回trait被定义时的名字,包括其被声明的作用域。
__METHOD__:PHP5.0新增,返回类的方法被定义时的名字。
__NAMESPACE__:PHP5.3新增,返回当前命名空间的名称,在编译时定义。
<?PHP
namespace MyProject;
header("content-type:text/html;charset=utf-8");
echo "命名空间名为:".__NAMESPACE__."\n";
echo "这是第 ". __LINE__ ."行\n";
echo "该文件位于 ". __DIR__ ."文件夹下\n";
echo "文件名为:". __FILE__ ."\n";
trait traitTest{
function Test(){
echo "trait名称为".__TRAIT__."\n";
}
}
class test {
use traitTest;
function show() {
echo "该类名为:". __CLASS__ ."\n";
echo "该函数名为:". __FUNCTION__."\n" ;
echo "该函数方法名为:".__METHOD__."\n";
}
}
$t = new test();
$t->show();
$t->Test();
?>