+1

Carrinho de compras com OOP e Arrays

criado por Marcus Sombra em 02/09/2006 10:57am
Agora vamos ao nosso carrinho de compras:

<?php
// class.carrinho.php
class CarrinhoDeCompras
{
    var $items; 

    function CarrinhoDeCompras()
    {
        $this->items = array(); // Define a var '$itens' sendo um array, note que chamei um construtor
    }

    function add_item($art, $num)
    {
        if (!isset($this->items[$art])) { 
            $this->items[$art] = $num; // Se o item '$art' não existe, $art = '$num'
        } else {
            $this->items[$art] += $num; // Se '$art' já existe, adiciona o '$num' a quantidade já existente
        }
    }

    function mostra_item($art)
    {
        if (isset($this->items[$art])) {
            return $this->items[$art]; // Se o '$art' existe, retorna a quantidade de itens do '$art'
        }
    }

    function quant_item($item, $num)
    {
        if ($num > 0) {
            $this->items[$item] = $num; // se '$num' for maior que 0, altera a quantidade do '$item' para '$num'
        } else {
            unset($this->items[$item]); // se for menor que 0, exclui o item do carrinho
        }
    }

    function rem_item($art, $num)
    {
        if (isset($this->items[$art])) {
            if ((($this->items[$art] - $num) > 0)) {
                $this->items[$art] -= $num; // se a quantidade do item - a quantidade a returar > 0, altera a quantidade
            } elseif ((($this->items[$art] - $num) == 0) || ($this->items[$art] - $num) < 0)) {
                unset($this->items[$art]); // se a quantidade for = ou < 0, retira o item do carrinho
            } 
        }
    }
}
?>

Exemplos de uso:

<?php
// compras.php
include "class.carrinho.php"; // inclui o arquivo com a classe

$car = new CarrinhoDeCompras; // Instanciei o objeto

$car->add_item(4, 5); // adiciona a quantidade de '5' items do produto '4' ao carrinho

$car->quant_item(4, 8); // altera a quantidade do item '4' para '8'

$car->rem_item(4, 3); // retira a quantidade de '3' itens do produto '4' do carrinho

$car->rem_item(4, 0); // deleta o item '4' do carrinho

$car->mostra_item(4); // retorna a quantidade do item '4' do carrinho
?>

Sugestões e críticas serão sempre bem-vindas! Até a próxima pessoal ;D

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)