2009-02-12 108 views
8

我認爲這是一個愚蠢的問題,但我無法在php上找到它。爲什麼在下面的代碼= A +:什麼是+ =用於?

function calculateRanking() 
{ 
    $created = $this->getCreated(); 

    $diff = $this->getTimeDifference($created, date('F d, Y h:i:s A')); 

    $time = $diff['days'] * 24; 
    $time += $diff['hours']; 
    $time += ($diff['minutes']/60); 
    $time += (($diff['seconds']/60)/60); 

    $base = $time + 2;   

    $this->ranking = ($this->points - 1)/pow($base, 1.5); 

    $this->save(); 
} 

會這樣$時候擁有所有這些值,或者更確切地說,它是將所有的值$時間?

感謝

回答

34

它是將所有這些值的時間。

something += somethingelse 

something = something + somethingelse 

- 亞當

+4

請注意:這不適用於琴絃。要連接字符串,請使用。= ...這使我瘋狂! – 2009-02-12 20:14:32

+0

這是真的,但那是因爲period是連接操作符。 +允許連接以方便,但它確實是一段時間。 – 2009-02-12 20:32:49

+0

爲什麼其他人的評論比我的評論更高,儘管我先回答了?如果我的名字是我的名譽的1000倍,而我的名單被列在其他人之後,那麼很難得到正確答案的信貸,儘管我的名字是正確的,應該記入正確的答案。 – DMCS 2009-02-12 20:54:58

11
$time += $diff['hours']; 

是等於說

$time = $time + $diff['hours']; 
+0

爲什麼其他人的評論會比我的評論更高,即使我先回答?如果我的名字是我的名譽的1000倍,而我的名單被列在其他人之後,那麼很難得到正確答案的信貸,儘管我的名字是正確的,應該記入正確的答案。 – DMCS 2009-02-12 20:54:01

+0

如果答案被接受,它會首先顯示。過去,用戶會根據他們選擇的排序順序(最舊|最新|票)看到答案。我相信通過投票排序是默認的。你的答案是最古老的,好的,但亞當更清楚。 – Zoredache 2009-02-12 21:06:32

+0

對不起。即使我們擁有相同的投票價值,我的回答總是低於您的。有人投我的答案,只有一個高於你的答案,然後才列在我的頭上。後來問題提問者接受了我的答案,這使答案處於頂部。 – 2009-02-12 21:43:48

7

a += 2;一個快捷方式的a = a + 2;

相當於在同一時間有一些語言(尤其是很老的C編譯器),編譯用第一個選項產生更好的代碼。它現在仍然存在,因爲它是一種常見的習慣用語,人們習慣於認爲它更清晰。

2

X + = 10是簡單地寫X = X + 10

在這種情況下,該代碼是找到時間(小時)從一個時間差結構差更短的方式。

2

$ val = $ val + $ otherval的快捷操作符。

這僅適用於數值

2

讓我們更換了一些東西,使之更容易一點理解。

的+ =是一樣的,如下:

$time = $diff['days'] * 24; 
$time = $time + $diff['hours']; 
$time = $time + ($diff['minutes']/60); 
$time = $time + (($diff['seconds']/60)/60); 
4

有很多在C,C++在其他現代語言,這些速記運營商。

a -= b; // a = a - b; 
a *= b; // a = a * b; 
a &= b; // a = a & b; 

等等等等等等

1

另外, 「A + = b」 爲誰的值可以被立即再次使用的表達式,

(((((a += b) *= c) += d) * e) += f); 

是少了很多的打字比

a = a + b; 
a = a * c; 
a = a + d; 
a = a * e; 
a = a + f; 
-1

爲什麼每一個身體要在一個簡單的方法,如果我們使用+ =或 - =或多個運營商的任意組合意味着我們喜歡 執行在最快的方式有所動作,如果你做了= A + B 這裏編譯器爲a產生2個令牌併爲b產生1個比添加該值並將其存儲爲有點複雜並且耗時的過程 但是如果你在這裏做a = + b ,那麼我們只有總共2個令牌和它的類似於位操作的工作快速。有關編譯器級代碼或代碼工作的更多詳細信息,您可以聯繫我的編號[email protected]