Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

ao rodar o código só da Cpf inválido

ao rodar o código o resultado só da Cpf inválido, e o código está igual ao do professor, alguém poderia me ajudar? segue o código para análise

<?php

require_once 'Conta.php';
require_once 'Titular.php';
require_once 'CPF.php';

$gabriel = new Titular(new CPF('123.456.789.10'), 'Gabriel Lacerda');
//var_dump($primeiraConta);
$primeiraConta = new Conta($gabriel);
$primeiraConta->deposita(valorADepositar: 500);
$primeiraConta->saca(valorASacar: 300);
//$primeiraConta->defineCpfTitular(cpf: '123.456.789-10');

$joaquin = new Titular(new CPF('987.654.321-10'), 'Joaquim');
$segundaConta = new Conta($joaquin);
var_dump($segundaConta);


echo $primeiraConta->recuperaNomeTitular() . PHP_EOL;
echo $primeiraConta->recuperaSaldo() . PHP_EOL;
echo $primeiraConta->recuperaCpfTitular() . PHP_EOL;


$outra = new Conta(new Titular(new CPF('123.456.321-08'), 'Pedrinho'));
unset($segundaConta);
echo Conta::recuperaNumeroDeContas();
<?php

class CPF
{
    private $numero;

    public function __construct(string $numero)
    {
        $numero = filter_var($numero, FILTER_VALIDATE_REGEXP, [
            'options' => [
                'regexp' => '/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2}$/'
            ]            
            ]);

            if ($numero === false) {
                echo "Cpf inválido";
                exit();
            }
            $this->numero = $numero;
    }

    public function recuperaNumero()
    {
        return $this->numero;
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Oi Gabriel, tudo bem?

Nessa linha $gabriel = new Titular(new CPF('123.456.789.10'), 'Gabriel Lacerda'); você coloca um formato errado para o CPF. O formato válido é xxx.xxx.xxx-xx, porém, você coloca no formato xxx.xxx.xxx.xx, basta tirar o último ponto e por um traço.

Verifique se há outros tipos de erros parecido no seu código.

Caso essa resposta tenha solucionado sua dúvida não esqueça de marcar a solução para o encerramento do tópico.

Bons estudos.

solução!

Obrigado Diego pela resposta, era só esse erro mesmo os demais estava certo e o código rodou corretamente.

Quem bom Gabriel, não esqueça de marcar a solução para encerrarmos o tópico.

Bons estudos.