2017-02-07 65 views
1

我剛開始了PHP課程。我被要求使用array_push創建購物車功能。我不完全理解代碼,任何人都可以幫忙嗎? 我創建了一個名爲數組$車PHP中的數組推式購物車

$cart = [ 
    'user' => 'sholmes', 
    'items' => [$camera, $lens] 

然後,我們被要求創建一個名爲創建項目功能,把物品放入購物車。答案如下:

function create_item(&$cart, $item) { 
    array_push($cart['items'], $item); 

    return count($cart) - 1; 
} 

我不明白的是最後一行代碼。爲什麼退貨計數$ cart -1?我認爲array_push的要點是添加項目到購物車?我們的老師通過解決方案進行了討論,但我不太明白。任何幫助歡迎! 感謝 趙薇

+0

那麼,什麼是'create_item'應該返回?也就是說,99%確定「答案」是錯誤的。 – Madbreaks

+3

如果它是'return count($ cart ['items']) - 1;',我幾乎懷疑它是爲了返回剛剛添加的項目的索引,但它沒有任何意義我這樣做。 –

+0

創建_item旨在將商品添加到購物車。我們的老師確實說過模型答案並不完全正確,但她的解釋對我沒有意義。 –

回答

0

與添加新項的$cart返回最後添加的項目的位置沿着你的情況下,該功能create_item(&$cart, $item)
array_push功能已經返回數組中的新元素數
該功能可以簡化爲以下幾點:

function create_item(&$cart, $item) { 
    return array_push($cart['items'], $item) - 1; 
} 

http://php.net/manual/en/function.array-push.php

+0

實際上,OPs「answer」確實不會返回您期望它返回的值。這就是對這個問題的評論所討論的內容。 – arkascha