为了账号安全,请及时绑定邮箱和手机立即绑定

请问【return self:: $speedUp = $speedUp + 10; return self::$speed+=10;】这两个表达方式有什么区别呀?为什么结果不同?

<?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();  //调用共有方法输出当前的速度值


正在回答

3 回答

$speedUp = $speedUp + 10

$speed+=10这两个表达式就,粗略的看$speedUp + 和$speedUp=$speedUp+10 是一个意思 但区别在于 $speedUp+ 是先使用$speedUp的值 然后再使$speedUp+10 而$speedUp =$speedUp+10 只是简单的给 $speedUp 加10,,所以return返回的值不同


1 回复 有任何疑惑可以回复我~
#1

三瓣核桃 提问者

非常感谢!谢谢 明白了。
2016-05-05 回复 有任何疑惑可以回复我~

第一,楼主应该是写错了,想要表达的意思是问return self:$speed+=10和return self:$speed=self:$speed + 10的区别。否则$speedUp是什么鬼?即不是变量名,也不是函数名。

第二,上面两个书写正确的表达式得出的结果是一致的,表达的也是一个意思,你得出不同的结果,完全是因为你写错了。

结论,楼主书写错误

2 回复 有任何疑惑可以回复我~

好像重点不应该是这个吧。self:: $speed= $speed + 10;你这样写肯定会报错的,因为在function speedUp()中你没有定义$speed,他同函数外$speed 是两个不同的变量;只有通过self::$speed,才能将该函数外面的speed引入到函数内来

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问【return self:: $speedUp = $speedUp + 10; return self::$speed+=10;】这两个表达方式有什么区别呀?为什么结果不同?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信