self::
代表當前類,可訪問類內靜態屬性、靜態方法、非靜態方法和常量。但不能訪問非靜態屬性
訪問方式:self::[靜態屬性|靜態方法|非靜態方法|常量],如self::$a (self不帶$,變量帶$)
this
代表當前類對象,不可訪問類內靜態屬性、靜態方法和常量。
訪問方式:$this->[變量|方法],如$this->a (this帶$,變量不帶$)
static::
與self::相比,self::代表調用的方法是對象被實現的類(子類),而static::調用的是基類(父類)
<?php
class Person{
public static function name(){
echo '父類'.'<br>';
}
public static function callself(){
self::name();
}
public static function callstatic(){
static::name();
}
}
class Man extends Person{
public static function name(){
echo '子類'.'<br>';
}
}
Man::callself(); // 父類
Man::callstatic(); // 子類