Solucionando o erro Notice: Undefined offset do PHP

Um erro muito comum quando mexemos com vetores (arrays) no PHP, é o Notice: Undefined offset. Ele significa que estamos tentando realizar uma operação com um array, buscando por um ítem inexistente. A mensagem de erro que normalmente surge é similar a esta:

Notice Undefined Offset PHP

Um exemplo de código fonte em PHP que irá gerar este erro:

Este erro ocorre pois o array $estados , conforme está sendo definido, terá os seguintes valores:

$estados[0] = “SP”;
$estados[1] = “PB”;
$estados[2] = “RS”;

Como estamos tentando chamar a posição 5 do array, por ela ser inexistente, causará o erro Notice: Undefined offset.

Solução 1: Usar o sizeof() para percorrer o array

Este erro pode normalmente ser corrigido implementando o sizeof(). Esta função retorna o número de registros em um array:

Este código irá nos retornar o resultado 3. Desse modo, o array $estados, possui 3 itens.

Importante: o sizeof() sempre nos retornará uma posição a mais em relação ao índice do array, pois o vetor começa sempre com 0.

A forma correta de se percorrer um vetor:

Este trecho de código irá exibir:

0 – SP
1 – PB
2 – RS

Solução 2: Usar o print_r() como debug para imprimir o array completo

O comando print_r() é muito útil para visualizar de forma completa um array. Igualmente, quando estamos trabalhando com arrays multidimensionais.

Neste exemplo, vamos popular um array multidimensional:

Em seguida, vamos incluir no código-fonte o comando print_r:

O resultado, será toda a estrutura do nosso array de forma organizada:

Dessa forma é possível entender exatamente a estrutura do array, e realizar a chamada da forma correta.

3 thoughts on “Solucionando o erro Notice: Undefined offset do PHP”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

hhchat