最近看到 php 中使用语法如 static::$var ,有点懵,于是百度后发现,static::$var 会强制使用当前调用对象所属类中的变量 $var 的值,还是看下下面的2个例子吧。
class a{
static protected $test="class a";
public function static_test(){
echo static::$test; //class b
echo self::$test; //class a
}
}
class b extends a{
static protected $test="class b";
}
$obj = new b();
$obj->static_test();
class par{
const v='A';
public function f1()
{
echo static::v;//静态绑定static::
}
public function f2()
{
echo self::v;
}
}
class child extends par{
const v='B';
}
$b=new child();
$b->f1(); //result: 'B'
echo '<br>';
$b->f2(); //result: 'A'