大神点进来瞧瞧!

来源:2-4 PHP类和对象之定义类的方法

a10282465693872396

2016-09-10 22:40

<?php

class Car {

    public $speed = 0;

    public function speedUp(){

       return  $this->speed+=10;

    }//增加speedUp方法,使speed加10

    

}

$car = new Car();

$car->speedUp();

echo $car->speedUp();

这样的结果是20,如果去掉$car->speedUp();,结果就是10,去掉了return结果就是0。。。。。。我晕了。。。。。。

写回答 关注

3回答

  • qq_冷暖自知_6
    2016-11-01 15:48:16

     你一开始调用$car->speedUp();得时候速度已经加了十了,之后你要显示速度就不要再用echo $car->speedUp();

    这样还会再调用一次这个方法就加了两次速度,要显示速度直接用echo $car->speed就行了。


    lingyu...

    一语道破天惊

    2017-07-13 12:44:06

    共 1 条回复 >

  • 枫中看雨
    2016-09-11 21:52:05

    很好,我也成功晕了...

    a10282...

    兄弟,不客气,哈哈

    2016-09-11 21:55:44

    共 1 条回复 >

  • StAR_tan
    2016-09-10 23:17:07

    1. speed变量不是执行完一次方法就销毁的,每次$car->speedUp()都会将speed变量增加10,执行代码中执行了两次$car->speedUp()所以得结果自然为20了。

    2. 去掉echo上面一行的$car->speedUp();即只在echo时执行了一次自然得10

    3. 去掉return即speedUp函数不返回值,不应得到结果0而是得到一个NULL,echo指令打印NULL时不会展示任何信息

    你只是不理解echo $car->speedUp();这句而已吧?这句其实执行了三个动作:1、执行$car->speedUp()方法;2、得到$car->speedUp()的返回值;3、echo打印$car->speedUp()的返回值

    lingyu... 回复StAR_t...

    这个例子我终于明白了对象和实例和类;;感谢

    2017-07-13 12:45:21

    共 8 条回复 >

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181835 学习 · 2577 问题

查看课程

相似问题