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

PHP Parse error: Invalid numeric literal

Por que tenho esse erro quando coloco o cpf 009.. em $conta1?

PHP Parse error:  Invalid numeric literal

Código:

$contasCorrentes = [
    00960621055 => $conta1,
    12345678910 => $conta2,
    12345678911 => $conta3
];

Não posso colocar um indice começando com 0? Mas dai como ficaria se o CPF da pessoa começar por 0?

Note se colocar 00460621055 (mudar o 9 por 4, não aparece mais mensagem de erro!)

Agora fiquei curioso!

5 respostas

Achei a seguinte explicação em: https://pt.stackoverflow.com/questions/213834/php-parse-error-invalid-numeric-literal

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.

Já me esclarece o motivo do meu erro, agora é só procurar me informar sobre esse tal octal válido o que é, de onde vem, do que se alimentam? kk :P

solução!

Oi Guilherme,

Como você iniciou o número com 0 o PHP tenta reconhecer como um número dentro do sistema octal, mas o valor informado por você não é reconhecível em nenhum sistema de numeração. Já que você deseja armazenar CPF's iniciados com 0 deve utilizar uma string, basta por o valor entre aspas. Não fará nenhuma diferença prática já que você não irá realizar nenhuma operação matemática com esses valores.

Funciona com 4 e não com 9 por que no octal temos números de 0 à 7 apenas.

Entendi, obrigado Diego!

Guilherme, você se esqueceu de marcar o tópico como resolvido. Estou marcando aqui para você. :-)

Claro mestre, obrigado hehe