In PHP , een geïndexeerde array slaat key -value paren van gegevens met behulp van niet- nul getallen als sleutels . Het eerste element van de array heeft een sleutel van nul en volgende elementen zijn doorlopend genummerd . Een array met tekenreeksen gebruikt als sleutels genoemd wordt een associatieve array . Wanneer u probeert toegang te krijgen tot een array element met een integer sleutel die is buiten de grenzen van de geldige sleutels in een array , een " undefined offset " foutbericht . De equivalente fout voor een associatieve array is een " undefined index " fout . Initialiseren met Array Function Een manier om een array in PHP te creëren is de functie " matrix " te gebruiken . Passeren een geordende lijst van elementen en PHP zal een geïndexeerde array van die elementen beginnend met nul te creëren . Bijvoorbeeld : < php $ dayofweek = ? $ dayofweek [ 2 ] ; //print " din " echo $ dayofweek [ 5 ] //print " Vrij " Undefined offset An " undefined offset " fout in PHP treedt op wanneer u probeert om te verwijzen naar een array element met behulp van een indexwaarde die niet bestaat . Als u nieuw bent bij het programmeren bent , kan je vergeten dat geïndexeerde array element toetsen beginnen met nul , niet een, en eindigen met het aantal elementen in de array minus een . Zo zal de volgende code een " undefined offset " fout in PHP produceren, omdat de " weekdag " array heeft zeven elementen op indexen nul tot zes , niet een tot zeven : echo $ dayofweek [ 7 ] ; initialiseren Via een functie U kunt ook initialiseren een array door deze gelijk te stellen aan de return waarde van een functie die een array retourneert , of door passeren een array op basis van een functie die de array zal wijzigen . Bijvoorbeeld : $ array = initialize_array ( ) ; //een functie die een array keert Als u niet zeker weet wat het laatste element is in de array geretourneerd door de functie en u probeert om toegang te krijgen tot een array element na de laatst gedefinieerde integer sleutel , zal je een " undefined offset " fout . vermijden met Graaf een manier om een te vermijden " ontvangen ; undefined offset "fout is aan de integer toetsen die u gebruikt om te gebruiken om de array waarden met een lus , zoals een referentie te controleren " voor "loop . Gebruik de functie " telling " om het aantal elementen in een array te identificeren en maak een lus "voor" uit element nul tot en met het laatste element . Bijvoorbeeld , de volgende code berekent het aantal elementen in een array om een lus die niet hoger zal zijn dan de array grens te maken: $ numdays = count ( $ dayofweek ) ; //returns 7Voor ( $ i = 0 ; $ i < $ numdays ; $ i + + ) echo " " . $ dayofweek [ $ i ] . " < /li > " ; //elementen genummerd van nul tot zes vermijden Met de " isset " Function Een andere manier om te voorkomen dat een " undefined offset " fout is om het te gebruiken " functie isset " . Deze functie zal " true " of " false" terug afhankelijk van of je hebt een array waarde met de opgegeven sleutel . Het zal niet leiden tot een " undefined offset " fout als het resultaat false . Voordat u probeert om te verwijzen naar een array element , bel dan de functie " isset " om te zien of het bestaat . Bijvoorbeeld , de volgende stappen code een teller totdat het een array key buiten de array grenzen bereikt : $ dag = -1 , terwijl ( isset ( $ dayofweek [ + + $ dag ] ) ) echo " < , li > " . $ dayofweek [ $ dag ] . " < /li > ' ;
|