Created
December 17, 2019 11:49
-
-
Save lucasinaciodev/6147be4cbdfec75edf6f5d125713530a to your computer and use it in GitHub Desktop.
Banco Fictício - estudando PHP - index
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class ContaCorrente | |
{ | |
private $titular; | |
public $agencia; | |
private $numero; | |
private $saldo; | |
public function __construct($titular, $agencia, $numero, $saldo) | |
{ | |
$this->titular = $titular; | |
$this->agencia = $agencia; | |
$this->numero = $numero; | |
$this->saldo = $saldo; | |
} | |
public function sacar($valor) | |
{ | |
Validacao::verificaNumerico($valor); | |
$this->saldo = $this->saldo - $valor; | |
return $this; | |
} | |
public function depositar($valor) | |
{ | |
Validacao::verificaNumerico($valor); | |
$this->saldo = $this->saldo + $valor; | |
return $this; | |
} | |
// public function getTitular() | |
// { | |
// return $this->titular; | |
// } | |
// public function getSaldo() | |
// { | |
// return $this->saldo; | |
// } | |
// public function setNumero($numero) | |
// { | |
// $this->numero = $numero; | |
// } | |
// public function setAgencia($numAgencia) | |
// { | |
// $this->agencia = $numAgencia; | |
// } | |
public function __get($atributo) | |
{ | |
Validacao::protegeAtributo($atributo); | |
return $this->$atributo; | |
} | |
public function __set($atributo, $valor) | |
{ | |
Validacao::protegeAtributo($atributo); | |
$this->$atributo = $valor; | |
} | |
private function formataSaldo() | |
{ | |
return "R$ " . number_format($this->saldo, 2, ",", "."); | |
} | |
public function getSaldo() | |
{ | |
return $this->formataSaldo(); | |
} | |
public function transferir(float $valor, ContaCorrente $conta) | |
{ | |
Validacao::verificaNumerico($valor); | |
$this->sacar($valor); | |
$conta->depositar($valor); | |
return $this; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
ini_set('display_errors', 1); | |
error_reporting(E_ALL); | |
header('Content-Type: text/html; charset=utf-8'); | |
require_once 'Validacao.php'; | |
require_once 'ContaCorrente.php'; | |
$guilherme = new ContaCorrente("Guilherme Porto", "4873", "51404-8", 6000.00); | |
$ricardo = new ContaCorrente("Ricardo Pereira", "5708", "29040-7", 3500.00); | |
?> | |
<head> | |
<style> | |
.container { | |
margin: 0 auto; | |
width: 40%; | |
border: 3px solid #ccc; | |
background: #111; | |
border-radius: 5px; | |
box-sizing: border-box; | |
padding: 10px; | |
color: #f2f2f2; | |
font-size: 1.3em; | |
} | |
</style> | |
</head> | |
<body style="background-color: #333"> | |
<div class="container"> | |
<pre> | |
<?php var_dump($ricardo); | |
// $novaConta->sacar(400.5)->depositar(650.00); | |
// var_dump($ricardo); | |
// echo $novaConta->titular . PHP_EOL; | |
// $novaConta->agencia = "0162"; | |
// var_dump($novaConta); | |
// echo $novaConta->getSaldo(); | |
// $guilherme->transferir(500.00, $ricardo); | |
// var_dump($guilherme); | |
// var_dump($ricardo); | |
$ricardo->sacar(50.00); | |
var_dump($ricardo); | |
echo $ricardo->agencia; | |
?> | |
</pre> | |
</div> | |
</body> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Validacao { | |
public static function protegeAtributo($atributo) | |
{ | |
if ($atributo == "titular" || $atributo == "saldo") { | |
throw new Exception("O atributo $atributo contina privado!"); | |
} | |
} | |
public static function verificaNumerico($valor) | |
{ | |
if (!is_numeric($valor)) { | |
echo "valor passado como parâmetro não é um número!"; | |
exit; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment