規(guī)則與 JAVA的static基本一致.
PS:
static方法中調(diào)用自身使用 self (這點(diǎn)與 objective-C 和 Swift 中的 Self 關(guān)鍵字截然不同)
對(duì)象方法中調(diào)用自身則使用 $this 代表自身當(dāng)前調(diào)用方法的對(duì)象.
被static的屬性or方法可以由類直接調(diào)用,不必實(shí)例化.
static方法調(diào)用格式 類名::方法名
對(duì)象方法調(diào)用格式 對(duì)象名->方法
class Car {
private static $speed = 10;
public static function getSpeed() {
return self::$speed;
}
}
echo Car::getSpeed(); //調(diào)用靜態(tài)方法
靜態(tài)方法也可以通過(guò)變量來(lái)進(jìn)行動(dòng)態(tài)調(diào)用
$func = 'getSpeed';
$className = 'Car';
echo $className::$func(); //動(dòng)態(tài)調(diào)用靜態(tài)方法
靜態(tài)方法中芝加,$this偽變量不允許使用瓮顽∥钥梗可以使用self,parent梗搅,static在內(nèi)部調(diào)用靜態(tài)方法與屬性。
class Car {
private static $speed = 10;
public static function getSpeed() {
return self::$speed;
}
public static function speedUp() {
return self::$speed+=10;
}
}
class BigCar extends Car {
public static function start() {
parent::speedUp();
}
}
BigCar::start();
echo BigCar::getSpeed();