self和parent在使用過程中有什么不同之處?
<?php 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()?{ ????????self::speedUp(); ????} } BigCar::start(); echo?BigCar::getSpeed();
在子類BigCar中self和parent的代碼執行的效果一樣。
2019-07-27
self操作的是當前類的屬性和方法,需要用::調用,英語的意思就是自身的。然后parent操作當前的父類。你這里使用的是BigCar的start方法,然后操作從父類繼承下來的speedUp方法,只調用了一次speedUp,你使用parent調用的是父類本身的speedUp方法,同樣也是使用了一次speedUp,所以兩個代碼的執行效果一樣。