有九个魔术常量它们的值随着它们在代码中的位置改变而改变。例如
    __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:
   
| 名字 | 说明 | 
|---|---|
| __LINE__ | 文件中的当前行号。 | 
| __FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。 | 
| __DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。 | 
| __FUNCTION__ | 当前函数的名称。匿名函数则为 {closure}。 | 
| __CLASS__ | 当前类的名称。类名包括其被声明的作用域(例如 Foo\Bar)。当用在 trait 方法中时,__CLASS__
         是调用 trait 方法的类的名字。 | 
| __TRAIT__ | Trait 的名字。Trait 名包括其被声明的作用域(例如 Foo\Bar)。 | 
| __METHOD__ | 类的方法名。 | 
| __NAMESPACE__ | 当前命名空间的名称。 | 
| ClassName::class | 完整的类名。 |