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

[Dúvida] Codigo com Erro.

<?php

function sacar($conta, $valorASacar)
{
    if ($valorASacar > $conta['saldo']) {
        exibeMensagem("Você não pode sacar este valor");
    } else {
        $conta['saldo'] -= $valorASacar;
    }

    return $conta;
}
function exibeMensagem ($mensagem)
{
    echo $mensagem . PHP_EOL;
}

$contasCorrentes = [
    '123.456.789-10' => [
        'titular' => 'Maria',
        'saldo' => 10000
    ],
    '123.456.689-11' => [
        'titular' => 'Alberto',
        'saldo' => 300
    ],
    '123.256.789-12' => [
        'titular' => 'Vinicius',
        'saldo' => 100
    ]
];

$contasCorrentes['123.456.789-10'] = sacar($contasCorrentes['123.456.789-10'], 500);
$contasCorrentes['123.456.789-11'] = sacar($contasCorrentes['123.456.789-11'], 500);


foreach ($contasCorrentes as $cpf => $conta) {
    exibeMensagem($cpf . " " . $conta['titular'] .' '. $conta['saldo'] . PHP_EOL);

}

php

2 respostas
solução!

O problema é que vc ta tentando sacar da conta do ALBERTO mas vc ta informando o CPF errado (123.456.789-11)... o correto é 123.456.689-11

$contasCorrentes['123.456.689-11'] = sacar($contasCorrentes['123.456.689-11'], 500);

Você está tentando acessar uma conta que não existe. A conta na chave '123.456.789-11' nunca foi definida. Você repetiu o 6 na hora de criar a conta e ficou '123.456.689-11'.