Uidentifiserte Index Feil i PHP
I PHP, er en rekke en datastruktur bestående av nøkkelverdi-par. Nøkkelen, også kalt en indeks identifiserer hvor i matrisen elementet befinner seg. Verdien er verdien av elementet. For eksempel vurdere uttalelsen
$ X [12] = 100;
"12" er matrisen indeksen og "100" er verdien av elementet ved indeks "12." I uttalelsen:
$ X [ 'name'] = "Mark";
"Navn" er matrisen indeksen og "Mark" er verdien av elementet i denne indeksen. En "uidentifisert indeks" feilen oppstår i PHP når du prøver å referere til verdien av en matrise element ved hjelp av en indeks som ikke finnes i tabellen.
skrivefeil
Noen ganger typografiske feil årsak tabellindekser problems.You kan skape en løkke til å utføre en operasjon på hvert element i en matrise og skriver feil variabelen du bruker til å angi indeksen. For eksempel vurdere følgende kodebiten som fører til en "uidentifisert indeks" feil fordi variabelen ble skrevet feil i kroppen av loopen.
for ($ index = 0; $ index <count ($ array); $ index ++) {
$ Matrise [$ idnex] + = 55;
}
Assosiativ array avskriftene
En assosiativ array lar deg bruke alfanumeriske taster for indekser. Det er viktig å forstå at disse tastene er store og små bokstaver, og at følgende kode vil produsere en "uidentifisert indeks" feil:
$ Matrise [ 'x'] = 5;
echo $ matrise [ 'X'];
Du kan unngå disse feilene ved å omforme det gjelder indeksen variabel ved hjelp av "strtolower" -funksjonen, som i følgende eksempel:
foreach ($ bokstaver som $ brev) {
echo $ matrise [strtolower ($ brev)];
}
Bad data
En "uidentifisert indeks" feil kan noen ganger oppstå på grunn av dårlige data. For eksempel, hvis du behandler et datasett der du forventer at alle indeksverdiene å være ikke-negativ og du får en negativ verdi i datasettet, vil det føre til en "uidentifisert indeks" feil. For å hindre feil oppstår, sette en betingelse for å felle ulovlig array-indeksene før de brukes, som i følgende eksempel:
while (($ p = mysql_fetch_assoc ($ resultat))) {
if ($ rad [ "array_index"] <0) {
echo "Bad rekke indeksverdi på". $ Rad [ "array_index"];
} Else {
echo $ matrise [$ rad [ "array_index"]];
}
Hindre Feil på Gyldige Cases
Noen ganger har du en rekke elementer og du ønsker å sjekke om et bestemt element i matrisen. For eksempel vurdere dette rekke elementer og mengden av hvert element på hånden:
$ Element [ 'godteri'] = 100;
$ Element [ 'tyggis'] = 75;
$ Element [ 'mints'] = 50;
Hvis du ønsker å sjekke for å se om du har noen pastiller, vil følgende utsagn føre til en "uidentifisert indeks" feil fordi det er ingen "pastiller" element i matrisen.
echo $ element [ 'pastiller'];
For å hindre at denne feilen, bruk "isset" -funksjonen for å først sjekke om elementet er i matrisen før du sjekke mengden verdi, som i følgende kode:
if (isset ($ item [ 'pastiller']) echo $ element [ 'pastiller'];