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

Warning: Trying to access array offset on value of type null

Esse é o meu código:

<?php

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

$contasCorrentes = [
    '123.456.789-10' => [
        'titular' => 'Breno',
        'saldo' => 1000
    ],

    '123.456.789-11' => [
        'titular' => 'Maria',
        'saldo' => 10000
    ],

    '123.456.789-12' => [
        'titular' => 'Alberto',
        'saldo' => 900
    ]

];

if (500 > $contasCorrentes['123.456.789-10']['saldo']) {
    exibeMensagem("Você não pode sacar");
} else {
    $contasCorrentes['123.456.789-10']['saldo'] -= 500;
}

if (500 > $contasCorrentes['123.456.789.11']['saldo']) {
    exibeMensagem( "Você não pode sacar");

} else {
    $contasCorrentes['123.456.789.11']['saldo'] -= 500;
}


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

O erro apresentado é esse:

PHP Warning: Undefined array key "123.456.789.11" in C:\Users\User\Desktop\PHP\banco.php on line 32 PHP Warning: Trying to access array offset on value of type null in C:\Users\User\Desktop\PHP\banco.php on line 32

Warning: Undefined array key "123.456.789.11" in C:\Users\User\Desktop\PHP\banco.php on line 32

Warning: Trying to access array offset on value of type null in C:\Users\User\Desktop\PHP\banco.php on line 32 Você não pode sacar 123.456.789-10 Breno 500 123.456.789-11 Maria 10000 123.456.789-12 Alberto 900

O que poderia ser?

1 resposta
solução!

Opa, o erro é porque na linha 32 você colocou um ponto antes do 11, mas na chave do seu array é um traço "-" ao invés do ponto.

ou seja, troque

if (500 > $contasCorrentes['123.456.789.11']['saldo'])

Por

if (500 > $contasCorrentes['123.456.789-11']['saldo'])

Note que a diferença é sutil, apenas trocando o ponto pelo traço.

E ao rodar, você vera o erro na linha 36 também, basta fazer a mesma alteração.

Abraços.

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