2017-02-07 5 views
1

Ich habe gerade einen PHP-Kurs gestartet. Ich wurde gebeten, eine Einkaufswagenfunktion mit array_push zu erstellen. Ich verstehe den Code nicht vollständig, kann jemand helfen? Ich habe ein Array namens $ Warenkorb erstelltArray Push-Einkaufswagen in PHP

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

Wir wurden dann gebeten, eine Funktion zu erstellen genannte Element erstellen, um Ihre Artikel in den Warenkorb zu legen. Die Antwort ist unten:

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

    return count($cart) - 1; 
} 

Was ich nicht verstehe, ist die letzte Zeile des Codes. Warum zählt die Rückgabe $ cart -1? Ich dachte, der Sinn von array_push wäre, Artikel in den Warenkorb zu legen? Unser Lehrer hat die Lösung durchgesprochen, aber ich verstehe es nicht ganz. Jede Hilfe willkommen! Dank Vicki

+0

Nun, was 'create_item' soll zurückkehren? Das heißt, 99% sicher, dass "Antwort" falsch ist. – Madbreaks

+3

Wenn es "Anzahl zurückgeben ($ cart ['items']) - 1;' wäre, würde ich fast vermuten, dass es beabsichtigt war, den Index des gerade hinzugefügten Elements zurückzugeben, aber es ergibt keinen Sinn Ich mache es so. –

+0

Create _item soll einen Artikel zum Warenkorb hinzufügen. Unser Lehrer sagte, dass die Modellantwort nicht ganz richtig war, aber ihre Erklärung ergab keinen Sinn für mich. –

Antwort

0

Die Funktion create_item(&$cart, $item) in Ihrem Fall zusammen mit einem neuen Elemente in den $cart kehrt die Position des zuletzt hinzugefügten Artikels hinzufügen.
Aber array_push Funktion bereits gibt die neue Anzahl der Elemente im Array zurück.
Die Funktion könnte auf die folgende vereinfacht werden:

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

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

+0

Tatsächlich antworten die OPs "answer" _not_ nicht den Wert, den Sie erwarten, dass er zurückkehrt. Das wird in den Kommentaren zu der Frage diskutiert. – arkascha