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)
}