Kas yra neapibrėžta indekso klaida PHP ir kaip ją ištaisyti?

Kas Yra Neapibrezta Indekso Klaida Php Ir Kaip Ja Istaisyti



Dirbant su PHP, dažnai susiduriama su „ Neapibrėžtas indeksas “ klaida. Ši klaida įvyksta, kai bandote pasiekti masyvo elementą arba kintamąjį naudodami neegzistuojančią indeksą, dėl ko atsiranda netikėtų rezultatų arba programos strigtis.

Šiame straipsnyje mes išsamiai paaiškinsime, kas yra „ Neapibrėžtas indeksas “ yra klaida, galimos jos priežastys ir kaip ją ištaisyti.







Neapibrėžta indekso klaida PHP

Neapibrėžtas indeksas “, kaip jau minėta, yra klaida, kuri atsiranda, kai vartotojas bando pasiekti elementą arba kintamąjį masyve naudodamas indeksą, kuris nėra apibrėžtas kode.





PHP neapibrėžtos indekso klaidos priežastys

Yra keletas galimų šios klaidos priežasčių:





  • Neteisingai parašytas indekso pavadinimas
  • Prieiga prie neegzistuojančio indekso
  • Indekso reikšmė nenustatyta
  • Masyvo raktas neegzistuoja

Kaip ištaisyti neapibrėžtą indekso klaidą PHP

Norėdami ištaisyti šią PHP klaidą, vartotojai gali naudoti šiuos tris būdus:

1: isset() funkcija

The isset () funkcija yra įtaisyta PHP funkcija, leidžianti patikrinti, ar masyve yra kintamasis arba indeksas. Tai grįžta tiesa jei kintamasis arba indeksas egzistuoja masyve, o false kitu atveju. Jei norite pataisyti neapibrėžta indekso klaida PHP, galite naudoti šią funkciją, laikydami toliau pateiktą kodą kaip pavyzdį, kuris tikrina programoje esantį kintamąjį.





$myarray = masyvas ( 'index1' => 'value1' , 'index2' => 'vertė2' , 'indeksas3' => 'value3' ) ;

jeigu ( isset ( $myarray [ 'indeksas' ] ) ) {

aidas $myarray [ 'indeksas' ] ;

} Kitas {

aidas 'Indeksas nerastas masyve' ;

}

?>

Aukščiau pateiktas kodas naudoja isset () funkcija patikrinti, ar „ indeksas „raktas egzistuoja $myarray masyvas. Jei taip, galime saugiai pasiekti jo vertę naudodami $myarray['indeksas'] nesukuriant klaidos. Kitu atveju gauname pranešimą, nurodantį, kad indeksas nerastas masyve. Kadangi aukščiau kodas indekso raktas nepasiekiamas, kodas išves rezultatą ' Indeksas masyve nerastas “.

2: masyvo_key_exists() Funkcija

Tai dar viena naudinga PHP funkcija, leidžianti patikrinti, ar masyve nėra indekso. Ji veikia panašiai kaip aukščiau pateikta funkcija, grąžindama true, jei masyve yra indeksas. Kitu atveju išveda klaidą indekso nerasta.

Žemiau pateiktas pavyzdys rodo šios funkcijos veikimą PHP.



$myarray = masyvas ( 'index1' => 'value1' , 'index2' => 'vertė2' , 'indeksas3' => 'value3' ) ;

jeigu ( masyvo_raktas_egzistuoja ( 'indeksas' , $myarray ) ) {

aidas $myarray [ 'indeksas' ] ;

} Kitas {

aidas 'Indeksas nerastas masyve' ;

}

?>

Aukščiau pateiktas kodas naudoja array_key_exists() funkcija patikrinti, ar „ indeksas „raktas egzistuoja $myarray masyvas. Jei taip, galime saugiai pasiekti jo vertę naudodami $myarray['indeksas'] nesukuriant klaidos.

Nuo aukščiau nurodyto kodo indeksas raktas nepasiekiamas, kodas išves rezultatą ' Indeksas masyve nerastas “.

3: Nulinio sujungimo operatoriaus naudojimas

The nulinis sujungimo operatorius (??) yra dar vienas naudingas būdas patikrinti, ar masyve yra indeksas, nes jis padės ištaisyti neapibrėžtą indekso klaidą jūsų PHP kode. Apsvarstykite toliau pateiktą kodą, kad sužinotumėte, kaip naudoti nulinis sujungimo operatorius PHP.



$myarray = masyvas ( 'index1' => 'value1' , 'index2' => 'vertė2' , 'indeksas3' => 'value3' ) ;

aidas $myarray [ 'indeksas' ] ?? „Indeksas nerastas masyve“ ;

?>

Aukščiau pateiktas kodas naudoja nulinis sujungimo operatorius (??) kad patikrintumėte, ar nėra indekso rakto, esančio $myarray masyvas . Jei taip, vertę galime gauti konsolėje. Tačiau jei indekso nėra, jis grąžina „ Indeksas masyve nerastas “ išvestis konsolėje.

Išvada

Neapibrėžtas indeksas “ yra dažna PHP klaida, kuri įvyksta bandant pasiekti neegzistuojantį masyvo indeksą. Neteisingai parašytas indekso pavadinimas, neegzistuojantis indeksas arba nenustatyta indekso reikšmė gali sukelti tokio tipo klaidą. Norėdami tai ištaisyti, galite naudoti isset(), array_key_exists() , arba nulinio sujungimo operatorius (??). Norėdami išsamiai sužinoti apie šiuos metodus, vadovaukitės aukščiau pateiktomis gairėmis.