Mikä on määrittelemätön indeksivirhe PHP:ssä ja kuinka korjaan sen?

Mika On Maarittelematon Indeksivirhe Php Ssa Ja Kuinka Korjaan Sen



PHP:n kanssa työskennellessä on tavallista kohdata ' Määrittelemätön indeksi ”virhe. Tämä virhe ilmenee, kun yrität käyttää taulukkoelementtiä tai muuttujaa indeksillä, jota ei ole olemassa, mikä johtaa odottamattomiin tuloksiin tai ohjelman kaatumiseen.

Tässä artikkelissa selitämme yksityiskohtaisesti, mitä ' määrittelemätön indeksi ”virhe on, mahdolliset syyt siihen ja kuinka se korjataan.







Määrittämätön indeksivirhe PHP:ssä

' Määrittelemätön indeksi Kuten jo mainittiin, on virhe, joka tapahtuu, kun käyttäjä yrittää käyttää taulukon elementtiä tai muuttujaa indeksillä, jota ei ole määritetty koodissa.





Syyt määrittelemättömään indeksivirheeseen PHP:ssä

Tähän virheeseen on useita mahdollisia syitä:





  • Väärin kirjoitettu indeksin nimi
  • Ei-olemassa olevan indeksin käyttö
  • Indeksin arvoa ei ole asetettu
  • Array Key ei ole olemassa

Kuinka korjata määrittelemätön indeksivirhe PHP:ssä

Tämän virheen korjaamiseksi PHP:ssä käyttäjät voivat käyttää seuraavia kolmea tapaa:

1: isset()-funktio

The isset() Funktio on PHP:n sisäänrakennettu funktio, jonka avulla voit tarkistaa muuttujan tai indeksin olemassaolon taulukossa. Se palaa totta jos muuttuja tai indeksi on olemassa taulukossa, ja epätosi toisessa tapauksessa. Jos haluat korjata määrittelemätön indeksivirhe PHP:ssä voit käyttää tätä toimintoa tarkastelemalla seuraavaa koodia esimerkkinä, joka tarkistaa ohjelmassa olevan muuttujan.





$myarray = joukko ( 'indeksi1' => 'arvo1' , 'indeksi2' => 'arvo2' , 'indeksi3' => 'arvo3' ) ;

jos ( isset ( $myarray [ 'indeksi' ] ) ) {

kaiku $myarray [ 'indeksi' ] ;

} muu {

kaiku 'Hakemistoa ei löydy taulukosta' ;

}

?>

Yllä oleva koodi käyttää isset() toiminto tarkistaaksesi, onko ' indeksi '-avain on olemassa $myarray-taulukko. Jos näin on, voimme turvallisesti käyttää sen arvoa $myarray['indeksi'] luomatta virhettä. Muussa tapauksessa saamme viestin, joka kertoo, että indeksiä ei löytynyt taulukossa. Edellä mainitusta lähtien koodi indeksiavain ei ole saatavilla, koodi tulostaa tuloksen ' Indeksiä ei löydy taulukosta ”.

2: array_key_exists() Funktio

Tämä on toinen hyödyllinen PHP-toiminto, jonka avulla voit tarkistaa taulukon indeksin. Se toimii samalla tavalla kuin yllä oleva funktio palauttamalla tosi, jos taulukossa on indeksi. Muussa tapauksessa se tulostaa indeksi ei löytynyt -virheen.

Alla oleva esimerkki näyttää tämän funktion toiminnan PHP:ssä.



$myarray = joukko ( 'indeksi1' => 'arvo1' , 'indeksi2' => 'arvo2' , 'indeksi3' => 'arvo3' ) ;

jos ( array_key_exists ( 'indeksi' , $myarray ) ) {

kaiku $myarray [ 'indeksi' ] ;

} muu {

kaiku 'Hakemistoa ei löydy taulukosta' ;

}

?>

Yllä oleva koodi käyttää array_key_exists() toiminto tarkistaaksesi, onko ' indeksi '-avain on olemassa $myarray-taulukko. Jos näin on, voimme turvallisesti käyttää sen arvoa $myarray['indeksi'] luomatta virhettä.

Ylläolevasta koodista lähtien indeksi avain ei ole saatavilla koodi tulostaa tuloksen ' Indeksiä ei löydy taulukosta ”.

3: Null Coalescing Operatorin käyttäminen

The tyhjä yhdistämisoperaattori (??) on toinen hyödyllinen tapa tarkistaa indeksin olemassaolo taulukossa, koska se auttaa sinua korjaamaan määrittelemättömän indeksivirheen PHP-koodissasi. Harkitse alla annettua koodia oppiaksesi käyttämään null coalescing -operaattori PHP:ssä.



$myarray = joukko ( 'indeksi1' => 'arvo1' , 'indeksi2' => 'arvo2' , 'indeksi3' => 'arvo3' ) ;

kaiku $myarray [ 'indeksi' ] ?? 'Hakemistoa ei löydy taulukosta' ;

?>

Yllä oleva koodi käyttää tyhjä yhdistämisoperaattori (??) tarkistaaksesi hakemistossa olevan hakemistoavaimen $myarray-taulukko . Jos näin on, saamme arvon konsolista. Jos indeksiä ei kuitenkaan ole, se palauttaa Indeksiä ei löydy taulukosta ” ulostulo konsolissa.

Johtopäätös

' määrittelemätön indeksi ” on yleinen virhe PHP:ssä, joka tapahtuu, kun yrität käyttää ei-olemassa olevaa taulukkoindeksiä. Väärin kirjoitettu indeksin nimi, olematon indeksi tai määrittämätön indeksiarvo voi aiheuttaa tämän tyyppisen virheen. Korjataksesi sen voidaan käyttää isset(), array_key_exists() , tai nollaliitosoperaattori (??). Noudata yllä annettuja ohjeita saadaksesi lisätietoja näistä menetelmistä.