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

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

為啥子也是20

<?php
class?Car?{
????private?static?$speed?=?10;
????
????public?function?getSpeed()?{
????????return?self::$speed;
????}
????
????//在這里定義一個靜態方法,實現速度累加10
????
????public?static?function?speedUp(){
???????return?self::$speed+=10;
????}
}
$car?=?new?Car();
echo?Car::speedUp();?//調用靜態方法加速20
echo?$car->getSpeed();??//調用共有方法輸出當前的速度值20

echo $car->getSpeed(); 這句話 ?怎么也是調用跟echo Car::speedUp();一樣的???

echo $car->getSpeed(); ? 這個不是直接調用前面那個?getSpeed();的方法么 ? 答案應該是10 怎么變成了20哎

正在回答

3 回答

<?php

class Car {

? ? private static $speed = 10;

? ??

? ? public function getSpeed() {

? ? ? ? return self::$speed;

? ? }

? ??

? ? //在這里定義一個靜態方法,實現速度累加10

? ? public static function speedUp() {

? ? ? ? return self::$speed+=10;

? ? }





}


$car = new Car();? //初始化

?$car->getSpeed();//調用一次getSpeed獲取到初始化10

Car::speedUp();? //調用靜態方法加速根據獲取到的10進行增加10=20

Car::speedUp();? //調用靜態方法加速,在之前的基礎上再增加10=20+10=30

Car::speedUp();? //調用靜態方法加速在之前的基礎上再增加10=30+10=40

echo $car->getSpeed();? //調用共有方法輸出當前的速度值? 最終打印出來是40


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

個人理解?echo?Car::speedUp(); 靜態調用結果speed=20 當調用echo?$car->getSpeed() 方法里面的?return?self::$speed;中的self指向內存中的speed=20,并內有對他進行任何的改變,所以兩次都是20,

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

慕沐4974640 提問者

個人理解是這樣子的
2018-08-07 回復 有任何疑惑可以回復我~

因為$speed是靜態的屬性,被speedUp調用以后是不會釋放值的。所以第一次調用speedUp會在10的基礎上加10,這個屬性的值本身就被變了。

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

舉報

0/150
提交
取消

為啥子也是20

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

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

幫助反饋 APP下載

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

公眾號

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