Na aula quando o professor pede para bloquear os atributos "titular" e "saldo" o atributo agência também é bloqueado.
contacorrente.php
<?php class contacorrente { private $titular; private $agencia; private $numero; private $saldo;
public function __construct($titular, $agencia, $numero, $saldo)
{
$this->titular = $titular;
$this->agencia = $agencia;
$this->numero = $numero;
$this->saldo = $saldo;
}
//metodo para sacar
public function sacar($valor){
$this->saldo = $this->saldo - $valor;
return $this;
}
//metodo para depositar
public function depositar($valor){
$this->saldo = $this->saldo + $valor;
return $this;
}
/*
// formas de liberar para visualizar e alterar individualmente cada atributo
//liberando para consultar titular
public function gettitular(){
return $this->titular;
}
//liberando para consultar saldo
public function getsaldo(){
return $this->saldo;
}
//liberando para alterar o titular
public function settitular($titular){
return $this->titular = $titular;
}
//liberando para alterar o saldo
public function setsaldo($saldo){
return $this->saldo = $saldo;
}
*/
private function protegeatributo ($atributo){
if ($atributo == "titular" || $atributo == "saldo") {
return false;
}
}
public function __get($atributo)
{
$this->protegeatributo($atributo);
//$this->$atributo;
}
public function __set($atributo, $valor){
$this->protegeatributo($atributo);
//$this->$atributo = $valor;
}
//funçao para formatar o saldo
public function formatasaldo (){
return number_format ($this->saldo, 2, ",", ".");
} } index.php
<?php require "contacorrente.php";
$contajoao = new contacorrente("joao","0783", "21867-3","500"); $contamaria = new contacorrente("maria","4831", "71321-3", "1000");
var_dump($contajoao); var_dump($contamaria); //echo $contajoao->saldo;
//$contajoao->sacar("400") ->depositar(770); //$contamaria->depositar("1000") ->sacar(25);
var_dump($contajoao); var_dump($contamaria); echo "antiga agencia maria: {$contamaria->agencia} , saldo antigo da maria: {$contamaria->formatasaldo()}";
$contamaria->agencia = "2734"; $contamaria->saldo = "50000"; echo PHP_EOL . " nova agencia da Maria: $contamaria->agencia , novo saldo a maria: {$contamaria->formatasaldo()}"; Onde pode estar o erro?
exibição no browser
object(contacorrente)#1 (4) { ["titular":"contacorrente":private]=> string(4) "joao" ["agencia":"contacorrente":private]=> string(4) "0783" ["numero":"contacorrente":private]=> string(7) "21867-3" ["saldo":"contacorrente":private]=> string(3) "500" } object(contacorrente)#2 (4) { ["titular":"contacorrente":private]=> string(5) "maria" ["agencia":"contacorrente":private]=> string(4) "4831" ["numero":"contacorrente":private]=> string(7) "71321-3" ["saldo":"contacorrente":private]=> string(4) "1000" } object(contacorrente)#1 (4) { ["titular":"contacorrente":private]=> string(4) "joao" ["agencia":"contacorrente":private]=> string(4) "0783" ["numero":"contacorrente":private]=> string(7) "21867-3" ["saldo":"contacorrente":private]=> string(3) "500" } object(contacorrente)#2 (4) { ["titular":"contacorrente":private]=> string(5) "maria" ["agencia":"contacorrente":private]=> string(4) "4831" ["numero":"contacorrente":private]=> string(7) "71321-3" ["saldo":"contacorrente":private]=> string(4) "1000" } antiga agencia maria: , saldo antigo da maria: 1.000,00 nova agencia da Maria: , novo saldo a maria: 1.000,00