Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Erro ao executar código gabarito da aula

<?php

$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
    ]
];

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

function depositar(array $conta, float $valorADepositar): array
{
    if ($valorADepositar > 0) {
        $conta['saldo'] += $valorADepositar;
    } else {
        exibeMensagem("Depositos precisam ser positivos");
    }
    return $conta;
}

function sacar(array $conta, float $valorASacar): array
{
    if ($valorASacar > $conta['saldo']) {
        exibeMensagem("Você não tem saldo suficiente");
    } else {
        $conta['saldo'] -= $valorASacar;
    }

    return $conta;
}

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

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

$contasCorrentes['123.256.789-12'] = depositar(
    $contasCorrentes['123.256.789-12'],
    900
);

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

Está dando o seguinte erro:

Catchable fatal error: Argument 1 passed to exibeMensagem() must be an instance of string, string given, called in C:\xampp\htdocs\alura\php\ModuloII\banco.php on line 24 and defined in C:\xampp\htdocs\alura\php\ModuloII\banco.php on line 18

2 respostas
solução

Fala, João.

To vendo que você tá usando XAMPP apesar de eu ter sido bem claro que não recomendo seu uso.

;-)

O problema é na versão do seu PHP instalado através do XMAPP. Você está utilizando uma versão antiga. É necessária a versão 7.0 (no mínimo) do PHP para rodar este código.

:-)

Abração e bons estudos!

Não me atentei a este detalhe, muito obrigado.