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

Não retornou nada na minha função recuperaSaldo

<?php

class Conta {

    private string $cpfTitular;
    private string  $nomeTitular;
    private float $saldoTitular =0;


public function sacar(float $saque) {

      if  ($saque < $this -> saldoTitular) {
           $this -> saldoTitular -= $saque;
           echo 'Saldo Atualizado '. $this -> saldoTitular;

          return;  
           }

       if ($saque > $this -> saldoTitular) {  
          echo 'Saldo Insuficiente '. $this-> saldoTitular ;
         $falta  = $this-> saldoTitular - $saque;
          echo 'Faltam. ' .$falta;
         return;

               } 
                  }

public function depositar(float $deposito)   {
       if($deposito < 0 ) {
           echo "Valor inválido - Negativo";
           return;

          } 
            $this -> saldoTitular += $deposito; 
            echo 'Saldo atualizado para '. $this-> saldoTitular ;   
           }    

public function transferir(float $valor, Conta $conta) {
           if( $this-> saldoTitular < $valor) 
               { echo 'Saldo Insuficiente '. $this -> saldoTitular;        
           return;
               } 
               $conta ->depositar($valor);

                   }

public function recuperaSaldo( ) : float{
           return $this->saldoTitular;

    }               
                }

5 respostas

Opa, vamos ver o que está acontecendo... Onde está o codigo que executa essa função.

<?php


require_once 'C:\Users\rlirio\Documents\PHP/Conta.php';


$primeiraConta = new Conta();
$primeiraConta -> depositar(100);
$primeiraConta -> recuperaSaldo();
$primeiraConta -> inserirCPF('123.456.765-90');

Desta forma funcionou mas quero entender porque não com o 'return':

public function recuperaSaldo( ) {
        echo $this->saldoTitular .PHP_EOL;
solução!

Ah, entendi. Recomendo dar uma reassistida no treinamento de PHP onde a gente fala sobre funções. Lá eu explico sobre retorno de funções.

Quando uma função retorna, o local que chamou ela passa a ter esse valor, entende? Sendo assim, o correto para exibir o valor retornado por recuperaSaldo seria:

echo $primeiraConta->recuperaSaldo();

Ter echo dentro das funções não é uma boa ideia. Se não estamos misturando nossas regras de negócio com a exibição da aplicação. Nós só estamos usando por enquanto para exibir os erros, mas isso vai ser melhor tratado no curso de exceptions. :-)

Dã, eu esqueci do echo no código. Obrigado, professor!