phpのショッピング車類の構想とコード


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); } ?>