php中的常量大部分都是不变的,但是有8个常量会随着他们所在代码位置的变化而变化,这8个常量被称为魔术常量。

__line__

文件中的当前行号

__file__

文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名.

__dir__

文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__file__)。除非是根目录,否则目录中名不包括末尾的斜杠。

__function__

函数名称,区分大小写。

__class__

类的名称,区分大小写。类名包括其被声明的作用区域(例如 foo\bar)。注意自 php 5.4 起 __class__ 对 trait 也起作用。当用在 trait 方法中时,__class__ 是调用 trait 方法的类的名字。可以用get_class来代替__class__

__trait__

trait 的名字,区分大小写。包括其被声明的作用区域(例如 foo\bar)。

__method__

类的方法名,区分大小写。用在类中时会输出类名,如:trick::doitagain

__namespace__

当前命名空间的名称,区分大小写。此常量是在编译时定义的。
定义如:namespace api\controller;