php 八个内置变量
__NAMESPACE__ '返回当前所在命名空间'
__CLASS__ '返回当前类名'
__METHOD__ '返回当前类名加方法名 A::b'
__FUNCTION__ '返回当前方法名 b'
__TRAIT__ '返回当前映射类'
__LINE__ '返回当前行号'
__FILE__ '返回当前文件所在路径'
__DIR__ '返回当前文件所在目录的路径'
<?php
namespace SU;
// 继承执行覆盖优先级
// MyHelloWorld 类中的方法 覆盖 SayWorld 类中的方法,
// 覆盖 Base 类中的方法
class Base {
public function sayHello() {
var_dump('__NAMESPACE__==>'.__NAMESPACE__);
var_dump('__CLASS__==>'.__CLASS__);
var_dump('__METHOD__==>'.__METHOD__);
var_dump('__FUNCTION__==>'.__FUNCTION__);
// var_dump(__TRAIT__);
var_dump('Hello ');
}
}
trait SayWorld {
public function sayHello() {
var_dump('__TRAIT__==>'.__TRAIT__);
var_dump('World!');
parent::sayHello();
}
}
class MyHelloWorld extends Base {
use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
var_dump('__LINE__==>'.__LINE__);
var_dump('__FILE__==>'.__FILE__);
var_dump('__DIR__==>'.__DIR__);
执行结果
string(23) "__TRAIT__==>SU\SayWorld"
string(6) "World!"
string(18) "__NAMESPACE__==>SU"
string(19) "__CLASS__==>SU\Base"
string(30) "__METHOD__==>SU\Base::sayHello"
string(23) "__FUNCTION__==>sayHello"
string(6) "Hello "
string(13) "__LINE__==>31"
string(59) "__FILE__==>G:\A_GIT\PHP\code\php练习\类的多继承1.php"
string(37) "__DIR__==>G:\A_GIT\PHP\code\php练习"