范圍解析操作符 ::
雙冒號(hào),可以用來(lái)訪問(wèn)類的靜態(tài)屬性和靜態(tài)方法以及常量。
在類的外部使用 雙冒號(hào)
class Foobar{
static $hello = 'world';
}
// 輸出 world
echo Foobar::$hello;
在類的內(nèi)部使用 雙冒號(hào)
// 類
class Foobar{
static $hello = 'world';
public function byStatic(){
echo static::$hello;
}
public function bySelf(){
echo self::$hello;
}
public function byThis(){
echo $this::$hello;
}
}
// 實(shí)例化
$foobar = new Foobar();
// 輸出 world
$foobar->byStatic();
// 輸出 world
$foobar->bySelf();
// 輸出 world
$foobar->byThis();
調(diào)用父類的方法
// 父類
class Foo{
public function __construct(){
echo 'Foo::__construct';
}
}
// 子類
class Bar extends Foo{
public function __construct(){
// 調(diào)用父類的方法
parent::__construct();
echo 'Bar::__construct';
}
}
綜合例子:
// 父類
class Foo{
public static function three(){
echo "a";
}
}
// 子類
class Bar extends Foo{
static $one = '1';
const TWO = 2;
public static function three(){
// 調(diào)用父類的方法
parent::three();
echo 'b';
}
}
// 靜態(tài)方法
Bar::three();
// 靜態(tài)屬性
echo Bar::$one;
// 常量
echo Bar::TWO;
// 最終輸出:ab12