Mis on PHP-s määratlemata indeksi viga ja kuidas seda parandada?

Mis On Php S Maaratlemata Indeksi Viga Ja Kuidas Seda Parandada



PHP-ga töötades kohtab sageli Määratlemata indeks ” viga. See tõrge ilmneb siis, kui proovite pääseda juurde massiivielemendile või muutujale, kasutades indeksit, mida pole olemas, mis toob kaasa ootamatud tulemused või programmi krahhi.

Selles artiklis selgitame üksikasjalikult, mis on ' Määratlemata indeks ” viga on, selle võimalikud põhjused ja kuidas seda parandada.







Määratlemata indeksi viga PHP-s

' Määratlemata indeks ” nagu juba mainitud, on tõrge, mis ilmneb siis, kui kasutaja proovib pääseda juurde massiivi elemendile või muutujale, kasutades koodis määratlemata indeksit.





PHP määratlemata indeksi vea põhjused

Sellel veal on mitu võimalikku põhjust:





  • Valesti kirjutatud indeksi nimi
  • Juurdepääs olematule indeksile
  • Indeksi väärtust pole määratud
  • Massiivivõtit pole olemas

Kuidas parandada PHP-s määratlemata indeksi viga

Selle vea parandamiseks PHP-s saavad kasutajad kasutada kolme järgmist meetodit.

1: isset() funktsioon

The isset() Funktsioon on PHP-sse sisseehitatud funktsioon, mis võimaldab kontrollida muutuja või indeksi olemasolu massiivis. See naaseb tõsi kui massiivis on muutuja või indeks olemas, ja muul juhul väär. Kui soovite parandada määratlemata indeksi viga PHP-s saate seda funktsiooni kasutada, võttes järgmise koodi näitena, mis kontrollib programmis olemasolevat muutujat.





$myarray = massiivi ( 'indeks1' => 'value1' , 'indeks2' => 'väärtus2' , 'indeks3' => 'value3' ) ;

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

kaja $myarray [ 'indeks' ] ;

} muidu {

kaja 'Indeksit massiivist ei leitud' ;

}

?>

Ülaltoodud kood kasutab isset() funktsioon kontrollimaks, kas indeks võti on failis $myarray massiiv. Kui see nii on, saame selle väärtusele turvaliselt juurde pääseda $myarray['indeks'] ilma viga tekitamata. Vastasel juhul saame teate, mis näitab, et indeksit ei leitud massiivi. Alates ülaltoodust kood indeksi võti pole saadaval, kood väljastab tulemuse ' Massiivist indeksit ei leitud ”.

2: array_key_exists() Funktsioon

See on PHP-s veel üks kasulik funktsioon, mis võimaldab teil kontrollida massiivi indeksit. See töötab sarnaselt ülaltoodud funktsiooniga, tagastades tõese, kui massiivis on indeks. Vastasel juhul väljastab see veaindeksi, mida ei leitud.

Allpool toodud näide näitab selle funktsiooni toimimist PHP-s.



$myarray = massiivi ( 'indeks1' => 'value1' , 'indeks2' => 'väärtus2' , 'indeks3' => 'value3' ) ;

kui ( array_key_exists ( 'indeks' , $myarray ) ) {

kaja $myarray [ 'indeks' ] ;

} muidu {

kaja 'Indeksit massiivist ei leitud' ;

}

?>

Ülaltoodud kood kasutab array_key_exists() funktsioon kontrollimaks, kas indeks võti on failis $myarray massiiv. Kui see nii on, saame selle väärtusele turvaliselt juurde pääseda $myarray['indeks'] ilma viga tekitamata.

Alates ülaltoodud koodist indeks võti pole saadaval, kood väljastab tulemuse ' Massiivist indeksit ei leitud ”.

3: Null Coalescing Operatori kasutamine

The null-liitmise operaator (??) on veel üks kasulik meetod massiivi indeksi olemasolu kontrollimiseks, kuna see aitab teil PHP koodis määratlemata indeksi viga parandada. Mõelge alltoodud koodile, et õppida, kuidas seda kasutada null-liitmise operaator PHP-s.



$myarray = massiivi ( 'indeks1' => 'value1' , 'indeks2' => 'väärtus2' , 'indeks3' => 'value3' ) ;

kaja $myarray [ 'indeks' ] ?? 'Indeksit massiivist ei leitud' ;

?>

Ülaltoodud kood kasutab null-liitmise operaator (??) et kontrollida failis olemasolevat registrivõtit $myarray massiiv . Kui see nii on, saame väärtuse konsoolist. Kui aga indeksit pole olemas, tagastab see Massiivist indeksit ei leitud ” väljund konsoolil.

Järeldus

' Määratlemata indeks ” on PHP-s tavaline viga, mis ilmneb siis, kui proovite pääseda juurde olematule massiiviindeksile. Seda tüüpi tõrke võib põhjustada valesti kirjutatud indeksi nimi, olematu indeks või määramata indeksi väärtus. Selle parandamiseks võib kasutada isset(), array_key_exists() või null-liitmise operaator (??). Nende meetodite üksikasjalikuks tutvumiseks järgige ülaltoodud juhiseid.