I PHP , en indexerad array butiker nyckelvärdepar av data med hjälp av icke - noll heltal som nycklar . Den första uppsättningen elementet har en nyckel av noll och efterföljande element är numrerade . En array som använder strängar som nycklar kallas en associativ array . När du försöker komma åt ett element i arrayen med ett heltal nyckel som är utanför gränserna för de giltiga nycklar i en array , får du en " odefinierad offset " fel . Motsvarande fel för en associativ array är en " odefinierad index " fel . Initiering med Array Funktion
Ett sätt att skapa en array i PHP är att använda " array " -funktion . Passera en ordnad lista av element och PHP kommer att skapa en indexerad array av dessa delar som börjar med noll . Till exempel :
< php $ dayOfWeek = ? $ dayOfWeek [ 2 ] , //tryck " tis " echo $ dayOfWeek [ 5 ] //tryck " Fri "
Undefined offset
En " odefinierad offset " fel i PHP uppstår när du försöker referera ett array-element med ett värde array index som inte existerar . Om du är ny till programmering , kan du glömma att indexerat arrayelement tangenterna börjar med noll , inte en, och avsluta med antalet element i arrayen minus ett . Till exempel kommer följande kod producera en " odefinierad offset " fel i PHP eftersom " dayOfWeek " array har sju element på index noll till sex , inte en till sju :
echo $ dayOfWeek [ 7 ] , Addera ditt initiera genom en funktion
Du kan också initiera en array genom att sätta det lika med returvärdet av en funktion som returnerar en array , eller genom skicka en array med hänvisning till en funktion som kommer att ändra arrayen . Till exempel :
$ array = initialize_array ( ) , //en funktion som returnerar en
array
Om du är osäker på vad det sista elementet i arrayen som returneras av funktionen och du försöker att komma åt ett element i arrayen efter det sist heltal nyckel , kommer du att få en " odefinierad offset " fel . Addera undvika med greve
ett sätt att undvika en " , odefinierat offset " fel är att kontrollera de heltal tangenter du använder för att använda för att referera till matrisvärdena med en ögla , såsom ett " för " loop . Använd " count " -funktion för att identifiera antalet element i en array och skapar en " för " loop från elementet noll fram till det sista elementet . Exempelvis beräknar följande kod antalet element i en array för att skapa en slinga som inte kommer att överstiga arrayen gränsen :
$ numdays = count ( $ dayOfWeek ) , //returnerar 7for ( $ i = 0 ; $ i < $ numdays , $ i + + ) echo "
" . $ dayOfWeek [ $ i] . " < /li > "; //element numrerade noll till sex Addera Undvika Med " isset " Function
Ett annat sätt att undvika en " undefined offset " fel är att använda " isset " funktionen . Denna funktion kommer att returnera " true " eller " false " beroende på om du har en array värde med den angivna nyckeln . Det kommer inte att utlösa en " odefinierad offset " fel om resultatet är falskt . Innan du försöker att referera ett array-element , kallar " isset " -funktionen för att se om den finns . Till exempel , följande kod steg en disk tills den når en array nyckel utanför array bounds :
$ dag = -1 , medan ( isset ( $ dayOfWeek [ + + $ dag ] ) ) echo " < ; li> " . $ dayOfWeek [ $ dag ] . " < /li > ";