亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大神點進來瞧瞧!

<?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 回答

?你一開始調用$car->speedUp();得時候速度已經加了十了,之后你要顯示速度就不要再用echo $car->speedUp();

這樣還會再調用一次這個方法就加了兩次速度,要顯示速度直接用echo $car->speed就行了。


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

lingyunkeyan

一語道破天驚
2017-07-13 回復 有任何疑惑可以回復我~

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

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

a10282465693872396 提問者

兄弟,不客氣,哈哈
2016-09-11 回復 有任何疑惑可以回復我~

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()的返回值

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

a10282465693872396 提問者

$car->speedUp();的意思是訪問類里面的方法?還是說是執行了類里面的方法?
2016-09-10 回復 有任何疑惑可以回復我~
#2

StAR_tan 回復 a10282465693872396 提問者

你說的訪問和執行有什么區別? 糾正一點,$car->speedUp()是執行實例里的方法,而不是類里的方法。這是有很大區別的,多看看面向對象相關的文章和書籍吧。 class 人{ function 說話(){ 你好 } } $小明 = new 人(); //小明是實例,人是類 $小明->說話(); //小明才能說話的能力,人只是定義了這種能力
2016-09-11 回復 有任何疑惑可以回復我~
#3

a10282465693872396 提問者 回復 StAR_tan

那如果定義的方法里面用的return,后面直接輸出$car->speedUp();沒有加echo。結果是什么都沒有,那是什么意思,現在還有點暈,返回值是賦予了speedup();這個函數了是吧,然后我再執行這個函數不就是應該有結果的嗎?
2016-09-11 回復 有任何疑惑可以回復我~
#4

楓中看雨 回復 a10282465693872396 提問者

大概是因為你沒有輸出語句,把return $this->speed+=10;換成echo $this->speed+=10;就能直接調用并且會顯示結果。return $this->speed+=10;的話調用時要echo $car->speedUp();
2016-09-11 回復 有任何疑惑可以回復我~
#5

楓中看雨 回復 楓中看雨

直接調用方法會顯示結果是因為方法里面有輸出語句,額,大概
2016-09-11 回復 有任何疑惑可以回復我~
#6

a10282465693872396 提問者 回復 楓中看雨

大概模模糊糊的能懂,如果完全解釋一邊的話就搞不清楚了只能這么記了
2016-09-11 回復 有任何疑惑可以回復我~
#7

StAR_tan 回復 a10282465693872396 提問者

變量是在內存里的(不會無緣無故顯示在屏幕上),你可理解為echo是將變量顯示到屏幕的命令,沒有這個命令你的一切計算都是在內存里,回去看前面的課從C開始學基礎,完全沒有編程概念很難解釋。
2016-10-21 回復 有任何疑惑可以回復我~
#8

lingyunkeyan 回復 StAR_tan

這個例子我終于明白了對象和實例和類;;感謝
2017-07-13 回復 有任何疑惑可以回復我~
查看5條回復

舉報

0/150
提交
取消

大神點進來瞧瞧!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號