大神點進來瞧瞧!
<?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。。。。。。我暈了。。。。。。
2016-11-01
?你一開始調用$car->speedUp();得時候速度已經加了十了,之后你要顯示速度就不要再用echo $car->speedUp();
這樣還會再調用一次這個方法就加了兩次速度,要顯示速度直接用echo $car->speed就行了。
2016-09-11
很好,我也成功暈了...
2016-09-10
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()的返回值