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

Onde está o erro nessa function PHP

Bati cabeça com esse codigo e não consigo decifrar o erro, ou OS ERROS...

<?php
// FUNÇÕES

$conta1 = [
   "titular" => "Wilson",
   "saldo" => 10000
];

$conta2 = [
   "titular" => "Paulinha",
   "saldo" => 23000
];

function sacar($conta, $valor) {
   if ($valor > $conta['saldo']) {
      echo "Você não pode sacar";
   } else {
      $conta['saldo'] -= $valor .PHP_EOL;
      echo "saque realizado com sucesso" .PHP_EOL;
   };

   return $conta;
};

$conta2['saldo'] = sacar($conta2, 500);
echo $conta2['saldo'];
2 respostas
solução!

Olá Wilson,

Teve dois detalhes que passaram no seu código:

  • Na no cálculo do saldo no saque foi adicionado um .PHP_EOL extra, então o php não entendeu se aquilo era realmente um número, a solução é apenas retirar isso:
// Antes
$conta['saldo'] -= $valor .PHP_EOL;

// Depois
$conta['saldo'] -= $valor;
  • Após fazer o saque você retorna a conta no final, mas você está salvando a conta retornada dentro de $conta2['saldo'], assim o valor de $conta2['saldo'] vai ser a conta inteira retornada e não o saldo, para corrigir isso é preciso apenas remover o ['saldo'] na hora do saque:
$conta2 = sacar($conta2, 500);

Espero ter ajudado, qualquer dúvida é só falar!

Era isso mesmo, valeu !!!