phpのショッピング車類の構想とコード
3528 ワード
hasItem($id)) { //
$this->incNum($id,$num);
return;
}
$item = array();
//
$item['name'] = $name;
$item['price'] = $price;
$item['num'] = $num;
$this->items[$id] = $item;
}
/*
int $id
int $num ,
$num
*/
public function modNum($id,$num=1) {
if (!$this->hasItem($id)) {
return false;
}
$this->items[$id]['num'] = $num;
}
/*
+1
*/
public function incNum($id,$num=1) {
if ($this->hasItem($id)) {
$this->items[$id]['num'] += $num;
}
}
/*
+1
*/
public function decNum($id,$num=1) {
if ($this->hasItem($id)) {
$this->items[$id]['num'] -= $num;
}
// , 0,
if ($this->items[$id]['num'] <1) {
$this->delItem($id);
}
}
/*
*/
public function hasItem($id) {
return array_key_exists($id,$this->items);
}
/*
*/
public function delItem($id) {
unset($this->items[$id]);
}
/*
*/
public function getCnt() {
return count($this->items);
}
/*
*/
public function getNum(){
if ($this->getCnt() == 0) {
// 0, 0
return 0;
}
$sum = 0;
foreach ($this->items as $item) {
$sum += $item['num'];
}
return $sum;
}
/*
*/
public function getPrice() {
// 0, 0
if ($this->getCnt() == 0) {
return 0;
}
$price = 0.0;
foreach ($this->items as $item) {
$price += $item['num'] * $item['price'];
}
return $price;
}
/*
*/
public function all() {
return $this->items;
}
/*
*/
public function clear() {
$this->items = array();
}
}
//print_r(CartTool::getCart());
/* */
$cart = CartTool::getCart();
if (!isset($_GET['test'])) {
$_GET['test'] = '';
}
if ($_GET['test'] == 'addpm') {
$cart->addItem(1,' ','1999',1);
echo " ";
}elseif ($_GET['test'] == 'addfushi') {
$cart->addItem(2,' ','169',1);
echo ' ';
} elseif ($_GET['test'] == 'clear') {
$cart->clear();
echo " ";
}elseif ($_GET['test'] == 'show') {
print_r($cart->all());
echo "
";
echo ' '.$cart->getCnt().' '.$cart->getNum().' ';
echo ' '.$cart->getPrice().' ';
} else{
print_r($cart);
}
?>