PHP'de Tanımsız Dizin Hatası Nedir ve Nasıl Düzeltilir?

Php De Tanimsiz Dizin Hatasi Nedir Ve Nasil Duzeltilir



PHP ile çalışırken, bir “ ile karşılaşmak yaygındır. Tanımlanmamış indeks ' hata. Bu hata, var olmayan bir dizini kullanarak bir dizi öğesine veya değişkene erişmeye çalıştığınızda ortaya çıkar ve beklenmeyen sonuçlara veya programın çökmesine neden olur.

Bu yazımızda “” nedir detaylı olarak anlatacağız. Tanımlanmamış indeks ” hatası, bunun olası nedenleri ve nasıl düzeltileceğidir.







PHP'de Tanımsız İndeks Hatası

Bir ' Tanımlanmamış indeks ' daha önce de belirtildiği gibi, bir kullanıcı bir kodda tanımlanmamış bir dizini kullanarak bir dizideki bir öğeye veya değişkene erişmeye çalıştığında oluşan bir hatadır.





PHP'de Tanımsız İndeks Hatasının Nedenleri

Bu hatanın birkaç olası nedeni vardır:





  • Yanlış Yazılan Dizin Adı
  • Var Olmayan Bir Dizine Erişmek
  • Endeks Değeri ayarlanmadı
  • Dizi Anahtarı mevcut değil

PHP'de Tanımsız Dizin Hatası Nasıl Onarılır

PHP'de bu hatayı düzeltmek için kullanıcılar aşağıdaki üç yöntemi kullanabilir:

1: isset() İşlev

bu isset() işlev, bir dizide bir değişkenin veya dizinin varlığını kontrol etmenizi sağlayan PHP'de yerleşik bir işlevdir. geri döner doğru bir dizide bir değişken veya dizin varsa ve başka bir durumda yanlışsa. düzeltmek istiyorsanız tanımsız dizin hatası PHP'de, aşağıdaki kodu bir programda var olan değişkeni kontrol eden bir örnek olarak ele alarak bu işlevi kullanabilirsiniz.





$myarray = sıralamak ( 'dizin1' => 'değer1' , 'dizin2' => 'değer2' , 'dizin3' => 'değer3' ) ;

eğer ( isset ( $myarray [ 'dizin' ] ) ) {

Eko $myarray [ 'dizin' ] ;

} başka {

Eko 'Dizin dizide bulunamadı' ;

}

?>

Yukarıdaki kod kullanır isset() ' olup olmadığını kontrol etme işlevi dizin ' anahtarı içinde var $myarray dizisi. Varsa, kullanarak değerine güvenle erişebiliriz. $myarray['dizin'] bir hata oluşturmadan. Aksi takdirde, aşağıdakileri belirten bir mesaj alırız: dizin bulunamadı dizide. Yukarıdakilerden beri kod dizin anahtarı mevcut değil, kod şu sonucu verecektir ' Dizide dizin bulunamadı ”.

2: array_key_exists() İşlev

Bu, PHP'de bir dizideki indeksi kontrol etmenizi sağlayan başka bir kullanışlı fonksiyondur. Bir dizide bir dizin varsa true değerini döndürerek yukarıdaki işleve benzer şekilde çalışır. Aksi halde indeks bulunamadı hatası verir.

Aşağıdaki örnek PHP'de bu fonksiyonun çalışmasını göstermektedir.



$myarray = sıralamak ( 'dizin1' => 'değer1' , 'dizin2' => 'değer2' , 'dizin3' => 'değer3' ) ;

eğer ( dizi_anahtarı_var ( 'dizin' , $myarray ) ) {

Eko $myarray [ 'dizin' ] ;

} başka {

Eko 'Dizin dizide bulunamadı' ;

}

?>

Yukarıdaki kod kullanır dizi_key_exists() ' olup olmadığını kontrol etme işlevi dizin ' anahtarı içinde var $myarray dizisi. Varsa, kullanarak değerine güvenle erişebiliriz. $myarray['dizin'] bir hata oluşturmadan.

Yukarıdaki koddan beri dizin anahtar mevcut değil, kod şu sonucu verecektir ' Dizide dizin bulunamadı ”.

3: Boş Birleştirme Operatörünü Kullanma

bu boş birleştirme operatörü (??) PHP kodunuzdaki tanımsız dizin hatasını düzeltmenize yardımcı olacağından, bir dizide dizin olup olmadığını kontrol etmenin başka bir kullanışlı yöntemidir. Nasıl kullanılacağını öğrenmek için aşağıda verilen kodu göz önünde bulundurun PHP'de null birleştirme operatörü.



$myarray = sıralamak ( 'dizin1' => 'değer1' , 'dizin2' => 'değer2' , 'dizin3' => 'değer3' ) ;

Eko $myarray [ 'dizin' ] ?? 'Dizin dizide bulunamadı' ;

?>

Yukarıdaki kod kullanır boş birleştirme operatörü (??) içinde bulunan indeks anahtarını kontrol etmek için $ myarray dizisi . Varsa, değeri konsolda alabiliriz. Ancak, dizin yoksa, ' Dizide dizin bulunamadı ” çıktısı konsolda.

Çözüm

Tanımlanmamış indeks ” PHP'de var olmayan bir dizi dizinine erişmeye çalıştığınızda ortaya çıkan yaygın bir hatadır. Yanlış yazılmış dizin adı, var olmayan dizin veya ayarlanmamış dizin değeri bu tür hatalara neden olabilir. Bunu düzeltmek için, isset(), array_key_exists() veya boş birleştirme işleci (??). Bu yöntemleri ayrıntılı olarak öğrenmek için yukarıda verilen yönergeleri izleyin.