Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

chave 'saldo' indefinida

este é o codigo:

<?php

function sacar($conta, $valor){
    if($valor > $conta['saldo']){
        exibeMensagem("Saldo insuficiente para saque");
    }else{
        $conta['saldo'] -= $valor;
    }   
    return $conta;
}

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

$contasCorrente = [
   '123.456.789-10' => [
    'titular' => 'Gabriel',
    'saldo'=> 1000 
], 
   '123.456.789-11' => [
    'titular' => 'Sofia',
    'saldo'=> 2000,
], 
   '123.456.789-12' => [
    'titular' => 'Marcos',
    'saldo'=> 500,
]
];

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

foreach ($contasCorrente as $cpf => $conta){
    exibeMensagem($cpf." - ".$conta['titular'].PHP_EOL);    
}

e no terminal exibe este erro:

PHP Warning:  Undefined array key "saldo" in C:\Users\User\Documents\Cursos\PHP\Arrays\avançando\banco.php on line 4

Warning: Undefined array key "saldo" in C:\Users\User\Documents\Cursos\PHP\Arrays\avançando\banco.php on line 4
Saldo insuficiente para saque
PHP Fatal error:  Uncaught TypeError: Cannot access offset of type string on string in C:\Users\User\Documents\Cursos\PHP\Arrays\avançando\banco.php:34
Stack trace:
#0 {main}
  thrown in C:\Users\User\Documents\Cursos\PHP\Arrays\avançando\banco.php on line 34

Fatal error: Uncaught TypeError: Cannot access offset of type string on string in C:\Users\User\Documents\Cursos\PHP\Arrays\avançando\banco.php:34
Stack trace:
#0 {main}
  thrown in C:\Users\User\Documents\Cursos\PHP\Arrays\avançando\banco.php on line 34
1 resposta
solução!

Oii, Gabriel.

Você está tentando passar o valor da chave do array $contasCorrente como parâmetro, mas a função sacar espera receber a conta inteira (ou seja, o array associativo com 'titular' e 'saldo').

Então, ao invés de passar ['123.456.789-10'] como parâmetro, você deveria passar $contasCorrente['123.456.789-10'].

A linha corrigida ficaria assim:

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

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software