<?php class Car { private static $speed = 10; public function getSpeed() { return self::$speed; } //在这里定义一个静态方法,实现速度累加10 public static function speedUp() { //return self:: $speedUp = $speedUp + 10; return self::$speed+=10; } } $car = new Car(); Car::speedUp(); //调用静态方法加速 echo $car->getSpeed(); //调用共有方法输出当前的速度值
$speedUp = $speedUp + 10
$speed+=10这两个表达式就,粗略的看$speedUp + 和$speedUp=$speedUp+10 是一个意思 但区别在于 $speedUp+ 是先使用$speedUp的值 然后再使$speedUp+10 而$speedUp =$speedUp+10 只是简单的给 $speedUp 加10,,所以return返回的值不同
第一,楼主应该是写错了,想要表达的意思是问return self:$speed+=10和return self:$speed=self:$speed + 10的区别。否则$speedUp是什么鬼?即不是变量名,也不是函数名。
第二,上面两个书写正确的表达式得出的结果是一致的,表达的也是一个意思,你得出不同的结果,完全是因为你写错了。
结论,楼主书写错误
好像重点不应该是这个吧。self:: $speed= $speed + 10;你这样写肯定会报错的,因为在function speedUp()中你没有定义$speed,他同函数外$speed 是两个不同的变量;只有通过self::$speed,才能将该函数外面的speed引入到函数内来