UNPKG

manual-php

Version:
149 lines (108 loc) 1.95 kB
# 魔术常量 `__LINE__` 用来获取文件中的当前行号。 ```php <?php var_dump(__LINE__); // int(3) ``` `__FILE__` 用来获取当前文件的完整路径和文件名。 ```php <?php var_dump(__FILE__); ``` `__DIR__` 用来获取当前文件所在的目录。 ```php <?php var_dump(__DIR__); ``` `__FUNCTION__` 用来获取当前函数的名称。 ```php <?php /** * Return the name of the current function. * * @param void * @return string */ function foo(): string { return __FUNCTION__; } var_dump(foo()); // string(3) "foo" ``` `__CLASS__` 用来获取当前类的名称。 ```php <?php class Foo { /** * Return the name of the current class. * * @param void * @return string */ public static function method(): string { return __CLASS__; } } var_dump(Foo::method()); // string(3) "Foo" ``` `__TRAIT__` 用来获取当前 Trait 的名称。 ```php <?php trait Foo { /** * Return the name of the current trait. * * @param void * @return string */ public static function method(): string { return __TRAIT__; } } class Bar { use Foo; } var_dump(Bar::method()); // string(8) "Foo" ``` `__METHOD__` 用来获取当前类的方法名。 ```php <?php class Foo { /** * Return the method name of the current class. * * @param void * @return string */ public static function method(): string { return __METHOD__; } } var_dump(Foo::method()); // string(11) "Foo::method" ``` `__NAMESPACE__` 用来获取当前命名空间的名称(区分大小写)。 ```php <?php namespace Foo; class Bar { /** * Return the name of the current namespace. * * @param void * @return string */ public static function method(): string { return __NAMESPACE__; } } var_dump(Bar::method()); // string(3) "Foo" ```