- Quando informo float na frente do parâmetro $valorSacar aparece a seguinte mensagem de erro: Erro fatal capturável : o argumento 2 passado para sacar () deve ser uma instância de float, dado inteiro, chamado em C: \ EasyPHP-Devserver-17 \ eds-www \ banco.php na linha 65 e definido em C: \ EasyPHP- Devserver-17 \ eds-www \ banco.php na linha 13
- Quando informo na frente da função : array , outro erro aparece : Erro de análise : erro de sintaxe, inesperado ':', esperando '{' em C: \ EasyPHP-Devserver-17 \ eds-www \ banco.php na linha 13. Por que isso acontece?
- O engraçado que quando retiro do código os tipo 'float' e ': array' o código funciona normalmente.
<?php
function sacar (array $conta, float $valorSacar) : array
{
if ($valorSacar > $conta['saldo']) {
exibeMensagem("Vc não pode sacar");
} else {
$conta['saldo'] -=$valorSacar;
}
return $conta;
}
function depositar ($conta, $valorDepositar)
{
if ($valorDepositar > 0 )
{
$conta['saldo'] += $valorDepositar;
return $conta;
} else {
exibeMensagem("Depositos apenas com valores maiores que zero");
}
}
function exibeMensagem($mensagem)
{
echo $mensagem . PHP_EOL;
}
// $contasCorrentes = [$conta1, $conta2, $conta3];
// for ($i = 0; $i < count($contasCorrentes); $i++) {
// echo $contasCorrentes [$i]['titular']. "\n \n";
// }
$contasCorrentes =
[
3 => [
'titular' => 'Vinicius',
'saldo' => 1000
],
4 => ['titular' => 'pamela',
'saldo' => 500
],
5 => [
'titular' => 'ana',
'saldo' => 300
],
];
$contasCorrentes[6] = [ // adicionando um item na lista
'titular' => 'claudia',
'saldo' => 2000
];
$contasCorrentes[6] = sacar($contasCorrentes[6], 500);
$contasCorrentes[5] = sacar($contasCorrentes[5], 500);
$contasCorrentes[4] = depositar($contasCorrentes[4], 300);
foreach ($contasCorrentes as $cpf => $conta)
{
exibeMensagem($cpf . '<br>');
exibeMensagem($conta['titular'] . '<br>') ;
exibeMensagem($conta['saldo'] . '<br>');
}
?>
</body>