6
respostas

HELP _ minha validacao nao deu certo

criei esse metodo igual ao do exemplo

<?php
class Conta{// criando uma classe eu crio um TIPO de dados podendo criar um variavel desse tipo
    //definindo os dados da conta
    private string $cpfTitular;
    private string $nomeTitular;
    private float $saldo ;//saldo inicia se com zero e é privado, so a conta pode acessar


    //qdo criar uma conta, obriga o usuario a digitar um nome e um cpf
    public function __construct(string $cpfTitular, string $nomeTitular)
    {
        $this->cpfTitular=$cpfTitular;
        $this->validaNomeTitular($nomeTitular); 
        $this->nomeTitular = $nomeTitular;
        $this->saldo = 0;


    }

    //metodos
    public function sacar(float $valorSacar) 
    {
        if($valorSacar > $this-> saldo){
            echo "saldo indisponivel";
            return;// seo o saldo for indisponivel, para o metodo.
        }
        $this-> saldo -=$valorSacar;

    }

    public function depositar(float $valorADepositar): void
    {
        if ($valorADepositar < 0) {
            echo "Valor precisa ser positivo";
            return;
        }
        $this->saldo += $valorADepositar;

    }
    public function transferir(float $valorATransferir, Conta $contaDestino) : void
    {
        if($valorATransferir > $this->saldo){
            echo "Saldo indisponivel";
            return;
        }
        $this->sacar($valorATransferir);//sacando da conta atual
        $contaDestino->depositar($valorATransferir );//conta destino
    }

    public function recuperarSaldo() : float
    {
        return $this->saldo;
    }

    public function recuperarCpfTitular() : string
    {
        return $this->cpfTitular;
    }

    public function recuperarNomeTitular() : string
    {
        return $this->nomeTitular;
    }
    private function validaNomeTitular(string $nomeTitular)
    {
        if (strlen($nomeTitular) < 5) {
            echo "Nome precisa ter pelo menos 5 caracteres";
            exit();//para execucao do programa
        }
    }


}


?>

instanciei uma nova conta

$segundaConta = new Conta('687.549.548-10', 'Ana');
var_dump($segundaConta)

porem a saida foi outra, apesar de Ana ter somente 3 caracteres

saida:

object(Conta)#2 (3) {
  ["cpfTitular":"Conta":private]=>
  string(14) "687.549.548-10"
  ["nomeTitular":"Conta":private]=>
  string(3) "Ana"
  ["saldo":"Conta":private]=>
  float(0)
}
6 respostas

Bom dia! Pode mandar o restante do codigo da class Conta ?

Pois é necessario chamar a função validaNomeTitular isso foi feito ?

Bom dia! Perceu Goncalves, editei o codigo. Da uma olhada la por favor. Obrigado.

Hum... deveria ter aparecido a mensagem no terminal, parece correto teu codigo... talvez usar throw para levantar uma exception....

mas no PHP tester que eu fiz aqui funcionou

Obrigado Perceu, vou dar uma conferidda. Valeu mesmo pela atencao.

O código parece correto:

https://3v4l.org/Vic4K

Obrigado Vinicius.