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'];