1. LINE
获取文件中的当前行号
<?phpecho '这是第 " ' . __LINE__ . ' " 行'; // 这是第 " 4 " 行
2. FILE
获取当前文件所在的完整路径,这是一个绝对路径
<?phpecho '该文件位于 " ' . __FILE__ . ' " '; // 该文件位于 " F:\phpstudy_pro\WWW\test\01-demo.php "
3. DIR
获取当前文件所在的目录,它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。
<?phpecho '该文件位于 " ' . __DIR__ . ' " '; // 该文件位于 " F:\phpstudy_pro\WWW\test "
4. FUNCTION
获取函数定义时的名称
<?phpfunction myTest(){echo '函数名为:' . __FUNCTION__;}myTest(); // 函数名为:myTest
5. CLASS
获取类定义时的名称
<?phpclass test{function print(){echo '类名为:' . __CLASS__ . "<br>";echo '函数名为:' . __FUNCTION__;}}$t = new test();$t->print(); //类名为:test 函数名为:print
6. TRAIT
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。
Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
7. METHOD
返回方法被定义时候的名字
<?phpfunction test() {echo '函数名为:' . __METHOD__ ;}test(); // test
8. NAMESPACE
获取当前命名空间的名称
<?phpnamespace MyProject;echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject"
FUNCTION 和 METHOD 的区别
- 一句话理解,METHOD 像是一个对 _FUNCTION 的补充,它不仅仅返回方法名称,返回类名称+方法名称_
<?phpclass Test{public function doit(){echo __FUNCTION__;}public function doitAgain(){echo __METHOD__;}}$obj = new Test();$obj->doit(); // doitecho '<br>';$obj->doitAgain(); // Test::doitAgain
