Untitled
unknown
plain_text
4 years ago
2.1 kB
9
Indexable
<?php
/*
1. Do NOT change the existing code.
2. Do NOT add attributes to this class.
3. Read TestBasket.php and ADD the missing methods after line 40.
*/
class Basket {
// ATTRIBUTES
// name of this basket
private $name;
// associative array where key is item (String) and value is quantity (int)
private $itemQtyArr;
// CONSTRUCTOR
public function __construct($name) {
$this->name = $name;
$this->itemQtyArr = [];
}
// METHODS
public function getSummary() {
$summary = "Basket '$this->name' [ ";
if ( count($this->itemQtyArr) == 0 ) {
$summary .= 'nothing.';
} else {
foreach ( $this->itemQtyArr as $item => $qty ) {
$summary .= "$qty $item, ";
}
}
$summary .= ']';
return $summary;
} // end function getSummary
// ADD MISSING METHODS HERE
public function get($item){
if(array_key_exists($item, $this->itemQtyArr)){
return $this->itemQtyArr[$item];
}
return 0;
}
public function add($item){
// check if array have $item as key
if(array_key_exists($item, $this->itemQtyArr)){
$quantity = $this->itemQtyArr[$item] + 1;
$this->itemQtyArr[$item] = $quantity;
}
else{
// add first item
$this->itemQtyArr[$item] = 1;
}
}
public function remove($item){
// if item don't exist in array
if(! array_key_exists($item, $this->itemQtyArr)){
return false;
}
// remove 1 qty from an item
$quantity = $this->itemQtyArr[$item] - 1;
if($quantity > 0){
$this->itemQtyArr[$item] = $quantity;
}
else{
//qty is now 0, remove item from array
unset($this->itemQtyArr[$item]);
}
return true; //remove is successful
}
} // end class Basket
Editor is loading...