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

Erro ao informar índices nos arrays

Olá, tudo bem?

Ao fazer o exercício, me deparei com o seguinte erro: Parse error: Invalid numeric literal in C:\...\ on line 4.

A linha 4 é onde defini o índice. Depois de vários testes, inclusive utilizando o código do professor, o qual eu não via nenhuma diferencia em relação ao meu, percebi que quando eu altero o cpf, meu código funciona. Na verdade basta eu alterar os zeros do cpf para um número diferente.

Gostaria de entender porque esses índices não funcionam quando se iniciam com zero. Agradeço a atenção desde já.

<?php

$contasCorrentes = [
  05821953540 => [
    'titular' => 'Carlos',
    'saldo' => 1000
  ],
  10008795657 => [
    'titular' => 'Nathália',
    'saldo' => 10000
  ],
  05821753650 => [
    'titular' => 'João',
    'saldo' => 300
  ]
];

foreach ($contasCorrentes as $cpf => $conta) {
  echo $cpf . PHP_EOL;
}
3 respostas

Esse erro acontece porque o número informado não é um octal válido, essa notação é conhecido por ter um zero a esquerda.

Passe o valor como uma string (adicionando aspas) e não como número.

'05821753650'

solução!

Olá, Carlos.

Você está começando um número começando com 0.

Ao iniciar um inteiro com 0, o PHP entende que o que seguir este 0 está na base octal.

Você pode ver mais detalhes aqui: https://www.php.net/manual/pt_BR/language.types.integer.php

Pode continuar o treinamento pois utilizaremos o CPF como string nos vídeos seguintes, logo, você não terá mais problemas. ;-)

Obrigado, Aijalon e Vinicius.

Defini as chaves como strings e deu tudo certo. Parabéns pelo curso Vinicius!