<?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的代码执行的效果一样。
self操作的是当前类的属性和方法,需要用::调用,英语的意思就是自身的。然后parent操作当前的父类。你这里使用的是BigCar的start方法,然后操作从父类继承下来的speedUp方法,只调用了一次speedUp,你使用parent调用的是父类本身的speedUp方法,同样也是使用了一次speedUp,所以两个代码的执行效果一样。