Orientação a Objetos com PHP Aula 23/03/2015
Modelo para criação de Classes <? class Nome_da_classe { $variavel1; $variavel2; function funcao1 ($parametro) { /* === corpo da função === */ } } ?>
Exemplo Carrinho de Compras O código a seguir define uma classe chamada CarrinhoDeCompras, que é uma matriz associativa com os artigos do carrinho e duas funções: uma para adicionar e outra para remover os itens. Deve-se utilizar o operador new para criar uma variável/objeto do tipo CarrinhoDeCompras.
Exemplo Carrinho de Compras <html> <head> <title>Teste PHP</title> </head> <body> <?php class CarrinhoDeCompras { var $items; // Items no carrinho de compras // Adiciona $num artigos do $artnr ao carrinho function adiciona_item ($artnr, $num) $this->items[$artnr] = $num; }
Exemplo Carrinho de Compras // Retira $num artigos do $artnr do carrinho function remove_item ($artnr, $num) { if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true; } else { return false; } ?> </body> </html>
Exemplo Carrinho de Compras Instanciando a Classe: $carrinho = new CarrinhoDeCompras; $carrinho->adiciona_item("Banana", 12);
Clientes <?php class cliente { public $nome; public $saldo; public function confirmarrecebimento(){ echo "<br/>Confirmado o recebimento"; } public function pagarconta($valor){ echo "<br/>Foi pago o valor de R$ ".$valor; } ?>
Incluindo Clientes <?php include("cliente-class.php"); $tempCliente = new Cliente(); $tempCliente->nome = "WESLEY"; $tempCliente->saldo = 100; $tempCliente->confirmarrecebimento(); $tempCliente->pagarconta(300); echo "<br/>Nome do Cliente : ".$tempCliente->nome; echo "<br/>Nome do Saldo : ".$tempCliente->saldo; ?>
Conta <? class conta { var $saldo; function saldo() { return $this->saldo; } function credito($valor) { $this->saldo += $valor; } }
Conta $minhaconta = new conta; $minhaconta->saldo(); // a variavel interna não foi inicializada, e não //contém valor algum $minhaconta->credito(50); $minhaconta->saldo(); // retorna 50 ?>
Conta - Subclasses <? class novaconta extends conta { var $numero; function numero() { return $this->numero; } } ?>
Conta - Construtores <? class conta { var $saldo; function conta () { $this.saldo = 0; } function saldo() { return $this->saldo; } function credito($valor) { $this->saldo += $valor; } } ?>