I PHP, en indekseret array- butikker nøgleværdipar af data ved hjælp af ikke-nul heltal som nøgler . Den første array element har en nøgle på nul og efterfølgende elementer er nummereret fortløbende . Et array , der bruger strenge som nøgler kaldes en associativ array. Når du forsøger at få adgang til en array element med et heltal nøgle, der er uden for rammerne af de gyldige nøgler i et array , modtager du en "udefineret offset" fejl. Den tilsvarende fejl for en associativ array er en "udefineret index " fejl . Initialisering med Array Function
En måde at skabe et array i PHP er at bruge " array" -funktionen. Pass en ordnet liste af elementer, og PHP vil skabe en indekseret vifte af de elementer, der begynder med nul. For eksempel : Hej
< php $ dayOfWeek = ? $ dayOfWeek [2 ] //udskriver " Tue " echo $ dayOfWeek [5 ] //udskriver " fre"
Undefined offset
En " udefineret offset " fejl i PHP opstår, når du forsøger at henvise en array element ved hjælp af en vifte indeksværdi , der ikke eksisterer . Hvis du er ny til programmering, kan du glemme, at indekserede arrayelementmodulerne taster begynder med nul, ikke én, og slutter med antallet af elementer i array minus én. For eksempel vil følgende kode producere et "udefineret offset" fejl i PHP , fordi den " dayOfWeek " matrix har syv elementer i indekser nul gennem seks , ikke én gennem syv : Hej
echo $ dayOfWeek [7] ;
Initialisering Gennem en Function
p Du kan også initialisere et array ved at sætte den svarer til afkastet værdien af en funktion, der returnerer et array, eller ved passerer et array med henvisning til en funktion, der vil ændre array . For eksempel : Hej
$ matrix = initialize_array () //en funktion, der returnerer en matrix
p Hvis du er usikker på, hvad det sidste element er i array returneres af funktionen , og du forsøger at få adgang til en array element efter sidste definerede heltal nøgle, vil du modtage en "udefineret offset" fejl.
undgå med grev
en måde at undgå en " ; udefineret offset "fejl er at kontrollere heltal taster du bruger til at bruge til at referere array værdier med en løkke , såsom en " for " loop . Brug " count" -funktionen til at identificere antallet af elementer i et array og skabe en "for" loop fra element nul op til det sidste element . For eksempel beregner følgende kode antallet af elementer i et array for at skabe en løkke, der ikke vil overstige array grænse : Hej
$ numdays = count ( $ dayOfWeek ) //returnerer 7for ($ i = 0 ; $ i <$ numdays , $ i + +) echo "
" . $ dayOfWeek [$ i]. " "; //elementer nummereres fra nul til seks
Undgå Med " isset " Function
En anden måde at undgå en " udefineret offset " fejl er at bruge" isset "-funktion. Denne funktion vil returnere "true" eller "false" , afhængigt af om du har en array værdi med den angivne nøgle. Det vil ikke udløse en "udefineret offset" fejl, hvis resultatet er falsk. Før du forsøger at henvise en array element , kalder " isset "-funktionen for at se, hvis den findes. For eksempel indtil følgende kode intervaller en tæller det når en array nøgle udenfor tabelgrænser : Hej
$ dag = -1 , mens ( isset ( $ dayOfWeek [+ + $ dag] ) ) echo " < ; li> " . $ dayOfWeek [$ dag] . " ";