Što je pogreška nedefiniranog indeksa u PHP-u i kako je popraviti?

Sto Je Pogreska Nedefiniranog Indeksa U Php U I Kako Je Popraviti



Kada radite s PHP-om, uobičajeno je naići na ' Neodređeni indeks ” pogreška. Ova se pogreška javlja kada pokušate pristupiti elementu polja ili varijabli pomoću indeksa koji ne postoji, što dovodi do neočekivanih rezultata ili pada programa.

U ovom ćemo članku detaljno objasniti što je ' Neodređeni indeks ” greška je, mogući razlozi za nju i kako je popraviti.







Nedefinirana pogreška indeksa u PHP-u

' Neodređeni indeks ” kao što je već spomenuto, pogreška je koja se javlja kada korisnik pokuša pristupiti elementu ili varijabli u nizu koristeći indeks koji nije definiran u kodu.





Razlozi pogreške nedefiniranog indeksa u PHP-u

Postoji nekoliko mogućih razloga za ovu pogrešku:





  • Pogrešno napisan naziv indeksa
  • Pristup nepostojećem indeksu
  • Vrijednost indeksa nije postavljena
  • Ključ polja ne postoji

Kako popraviti pogrešku nedefiniranog indeksa u PHP-u

Kako bi popravili ovu pogrešku u PHP-u, korisnici mogu koristiti sljedeće tri metode:

1: funkcija isset().

The isset() funkcija je ugrađena funkcija u PHP-u koja vam omogućuje provjeru postojanja varijable ili indeksa u nizu. Vraća se pravi ako varijabla ili indeks postoji u nizu, a false u drugom slučaju. Ako želite popraviti greška nedefiniranog indeksa u PHP-u ovu funkciju možete koristiti uzimajući u obzir sljedeći kod kao primjer koji provjerava varijablu koja postoji u programu.





$myarray = niz ( 'index1' => 'vrijednost1' , 'index2' => 'vrijednost2' , 'index3' => 'vrijednost3' ) ;

ako ( isset ( $myarray [ 'indeks' ] ) ) {

jeka $myarray [ 'indeks' ] ;

} drugo {

jeka 'Indeks nije pronađen u nizu' ;

}

?>

Gornji kod koristi isset() funkcija za provjeru je li ' indeks ' ključ postoji u $myarray polje. Ako ima, možemo sigurno pristupiti njegovoj vrijednosti pomoću $myarray['index'] bez generiranja greške. U suprotnom, dobivamo poruku koja pokazuje da je indeks nije pronađen u nizu. Budući da je gore navedeno kodirati ključ indeksa nije dostupan, kod će ispisati rezultat ' Indeks nije pronađen u nizu ”.

2: funkcija array_key_exists().

Ovo je još jedna korisna funkcija u PHP-u koja vam omogućuje provjeru indeksa u nizu. Radi slično gornjoj funkciji vraćajući true ako indeks postoji u nizu. U suprotnom, ispisuje pogrešku indeks nije pronađen.

Donji primjer pokazuje rad ove funkcije u PHP-u.



$myarray = niz ( 'index1' => 'vrijednost1' , 'index2' => 'vrijednost2' , 'index3' => 'vrijednost3' ) ;

ako ( niz_ključ_postoji ( 'indeks' , $myarray ) ) {

jeka $myarray [ 'indeks' ] ;

} drugo {

jeka 'Indeks nije pronađen u nizu' ;

}

?>

Gornji kod koristi array_key_exists() funkcija za provjeru je li ' indeks ' ključ postoji u $myarray polje. Ako ima, možemo sigurno pristupiti njegovoj vrijednosti pomoću $myarray['index'] bez generiranja greške.

Budući da gornji kod indeks ključ nije dostupan kod će ispisati rezultat ' Indeks nije pronađen u nizu ”.

3: Korištenje operatora spajanja nule

The nulti operator spajanja (??) je još jedna korisna metoda za provjeru postojanja indeksa u nizu jer će vam pomoći popraviti pogrešku nedefiniranog indeksa u vašem PHP kodu. Razmotrite donji kod da biste naučili kako koristiti nulti operator spajanja u PHP-u.



$myarray = niz ( 'index1' => 'vrijednost1' , 'index2' => 'vrijednost2' , 'index3' => 'vrijednost3' ) ;

jeka $myarray [ 'indeks' ] ?? 'Indeks nije pronađen u nizu' ;

?>

Gornji kod koristi nulti operator spajanja (??) za provjeru ključa indeksa koji postoji u $myarray polje . Ako ima, možemo dobiti vrijednost na konzoli. Međutim, ako indeks ne postoji, vraća ' Indeks nije pronađen u nizu ” izlaz na konzoli.

Zaključak

' Neodređeni indeks ” je uobičajena pogreška u PHP-u koja se javlja kada pokušate pristupiti nepostojećem indeksu polja. Pogrešno napisan naziv indeksa, nepostojeći indeks ili nepostavljena vrijednost indeksa mogu uzrokovati ovu vrstu pogreške. Da biste to popravili, možete koristiti isset(), array_key_exists() , ili nulti operator spajanja (??). Slijedite gore navedene smjernice kako biste saznali više o ovim metodama.