4
respostas

Ja tentei de tudo. Parse error: syntax error, unexpecte

Olá pessoal,

revisei o codigo de cima a baixo e não vejo o erro. Mas o programa insiste em teimar cmg (rs) Erro: Parse error: syntax error, unexpecte (na Linha 4 - function sacar)

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

    return $conta;
}
4 respostas

Seria interessante vc postar todo o código atrelado. Assim ficaria mais fácil identificar algum outro trecho que poderia estar gerando o erro nessa situação.

Opa, Aragon. Ta na mão

<?php


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

    return $conta;
}

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 exibeConta (array $conta) {
    echo "<li>Titula: $conta[titular] </li>";
}

Meu segundo arquivo faz a inclusão desse ai de cima chamado de 'funcoes.php' ao fazer essa requisição o browser me retorna erro na linha 4 do conteúdo de 'funcoes.php'

<?php

include 'funcoes.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
    ]
];

$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) {
    exibeConta($conta);
}
echo "</ul>";

Olhando "de cima" confesso q não achei nada de estranho a nao ser no $conta[titular] desse trecho estava sem as aspas simples na palavra titular

function exibeConta (array $conta) {
    echo "<li>Titula: $conta['titular'] </li>";
}

Seu código está certo. Se você postar a mensagem de erro completa pode ajudar.

Mas eu suponho que você esteja usando uma versão desatualizada do PHP.