Programação  
 
Conhecimento computador >> Programação >> Programação PHP /MySQL >> 
PHP Erro: Indefinido offset
No PHP, um lojas matriz indexada pares de valores-chave de dados usando números inteiros diferentes de zero como chaves. O primeiro elemento do array tem uma chave de zero e elementos subsequentes são numeradas consecutivamente . Uma matriz que usa cordas como chaves é chamado uma matriz associativa . Quando você tenta acessar um elemento da matriz com uma chave de inteiro que está fora dos limites das chaves válidas em uma matriz , você recebe um erro " indefinido compensar" . O erro equivalente para uma matriz associativa é um erro " índice indefinido " . Inicializar com Função Array

Uma maneira de criar uma matriz em PHP é usar a função "array" . Passe uma lista ordenada de elementos e PHP criará uma matriz indexada desses elementos começando com zero. Por exemplo :

Undefined offset

Um "undefined compensar " erro no PHP ocorre quando você tenta fazer referência a um elemento de matriz usando um valor de índice de matriz que não existe. Se você é novo em programação , você pode esquecer que as chaves elemento de matriz indexada começam com zero, não um, e terminam com o número de elementos do array menos um. Por exemplo, o código a seguir produzirá um "undefined compensar" erro no PHP porque a matriz " dayofweek " tem sete elementos em índices de zero a seis , e não de um a sete :

echo $ DayOfWeek [ 7 ] ;
inicialização através de uma função

Você também pode inicializar uma matriz definindo- igual ao valor de retorno de uma função que retorna um array, ou por passar um array por referência a uma função que irá modificar a matriz . Por exemplo :

$ array = initialize_array () //a função que retorna um array

Se não tiver certeza que o último elemento na matriz é retornado pela função e você tentar para acessar um elemento da matriz após a última chave de número inteiro definido, você receberá um erro "undefined compensar" .
Evitando com Contagem

uma maneira de evitar um " ; indefinido compensar " o erro é controlar as chaves inteiras que você usa para usar para referenciar os valores de matriz com um laço , como um laço" for " . Use a função de "contar" para identificar o número de elementos em uma matriz e criar um laço "for" de elemento de zero até o último elemento . Por exemplo, o código a seguir calcula o número de elementos em uma matriz para criar um loop que não poderá ultrapassar o limite de matriz :

$ numdays = count ( $ dayofweek ); //retorna 7Para ($ i = 0 ; $ i <$ numdays ; $ i + +) echo "

  • " . $ dayofweek [$ i] . "
  • "; //elementos numerados de zero a seis
    Evitando com a função " isset "

    Outra forma de evitar um " indefinido compensar " erro é usar a" função isset " . Esta função irá retornar "true" ou "false" , dependendo se você tem um valor de array com a chave especificada . Não vai desencadear um erro " indefinido compensar" se o resultado é falso. Antes de tentar fazer referência a um elemento da matriz , chame a função " isset " para ver se ele existir. Por exemplo, o código a seguir incrementa um contador até que ele atinja uma chave de matriz fora dos limites da matriz :

    $ day = -1; while ( isset ($ dayofweek [+ + $ dia] ) ) echo " < ; li> " . $ dayofweek [$ dia] . " ";

    Anterior :

    Próximo : No
      Os artigos relacionados
    ·MySQL 1030 Erro 
    ·Como fazer comentários em um arquivo PHP 
    ·Get_headers Vs . Velocidade cURL em PHP 
    ·CodeIgniter Vs . ExpressionEngine 
    ·000X0 PHP string de erro 
    ·PHP Desvincular Problemas 
    ·Twitter API senha Comprimento Limite 
    ·Como Ler Consulta Cordas em PHP 
    ·Longest Substring comum em PHP 
    ·Como capturar um título página usando PHP 
      Artigos em destaque
    ·Definição de uma Exceção de baixo nível 
    ·Como bloquear Geodatabases 
    ·Como substituir Excluir no Rails 
    ·Como criar uma classe de implementação em Java 
    ·Tipos de verificações de validação 
    ·Como processar XML e JDOM em Java 
    ·Como inicializar uma matriz vazia em C 
    ·Como configurar o Eclipse com Android no Windows 
    ·Como aumentar o desempenho de um Crystal Report para qu…
    ·O que é depuração em programação C 
    Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados