In PHP , un array indicizzato negozi di coppie chiave-valore dei dati utilizzando numeri interi non nulli come chiavi. Il primo elemento di un array ha una chiave di elementi pari a zero e la successiva sono numerate progressivamente . Un array che utilizza stringhe come chiavi viene chiamato un array associativo . Quando si tenta di accedere a un elemento di un array con una chiave intero che è al di fuori dei confini delle chiavi valide in un array , viene visualizzato un errore " undefined offset" . L'errore equivalente a un array associativo è un errore " undefined index " . Inizializzazione con Array Funzione
Un modo per creare un array in PHP è quello di utilizzare la funzione " allineamento" . Passare una lista ordinata di elementi e PHP creerà un array indicizzato di quegli elementi che iniziano con zero. Per esempio :
< php $ dayofweek = ? $ dayofweek [2 ] ; //stampa "Tue " echo $ dayofweek [5 ] //stampa " Ven"
Undefined offset
" undefined offset " errore in PHP si verifica quando si tenta di fare riferimento a un elemento di un array utilizzando un valore di indice di array che non esiste . Se sei nuovo di programmazione , si può dimenticare che le chiavi degli elementi array indicizzato iniziano con lo zero , non uno, e alla fine con il numero di elementi dell'array meno uno. Ad esempio, il seguente codice produrrà un "Offset definito" errore in PHP perché la matrice " dayofweek " ha sette elementi a indici da zero a sei , non uno a sette :
echo $ dayofweek [ 7 ] ;
Inizializzazione tramite una funzione
è anche possibile inizializzare un array impostandolo uguale al valore di ritorno di una funzione che restituisce una matrice , o da passaggio di un array con riferimento a una funzione che modifica l'array . Per esempio :
$ array = initialize_array (); //una funzione che restituisce un array
Se non siete sicuri che cosa l'ultimo elemento è nella matrice restituita dalla funzione e si tenta per accedere a un elemento di matrice dopo l'ultimo tasto intero definito , si riceverà una " compensazione definito" errore.
evitare Con conte
un modo per evitare un " , undefined offset " errore è quello di controllare le chiavi intere da utilizzare per utilizzare per fare riferimento ai valori della matrice con un ciclo , come un " loop per " . Utilizzare la funzione " conteggio " per identificare il numero di elementi in un array e creare un anello " per" da un elemento zero fino all'ultimo elemento . Ad esempio , il codice seguente calcola il numero di elementi di un array per creare un loop che non supererà il confine matrice:
$ numdays = count ( $ dayofweek ) ; //restituisce 7Per ( $ i = 0 ; $ i < $ numdays ; $ i + + ) echo "
" . $ dayofweek [ $ i ] . " < /li> " ; //elementi numerati da zero a sei
Evitare Con il " isset " Funzione
Un altro modo per evitare una " undefined offset " errore è quello di utilizzare la funzione" isset " . Questa funzione restituisce "true" o "false" a seconda se si dispone di un valore di array con la chiave specificata . Non si innescherà un "indefinito offset" errore se il risultato è false . Prima di tentare di fare riferimento a un elemento di matrice , richiamare la funzione " isset " per vedere se esiste. Ad esempio , il codice seguente incrementa un contatore fino a raggiungere una chiave di serie al di fuori dei limiti di matrice :
$ giorno = -1; mentre ( isset ( $ dayofweek [ + + $ al giorno ] ) ) echo " < ; li> " . $ dayofweek [ $ al giorno ] . " < /li> " ;