tanımsız PHP hatası ofset

3 Cevap php

Ben PHP aşağıdaki hatayı alıyorum

Notice undefined offset 1: in C:\wamp\www\includes\imdbgrabber.php line 36

İşte bunu neden PHP kodu:

<?php
  function get_match($regex,$content)  
  {  
    preg_match($regex,$content,$matches);     

    return $matches[0];                     //ERROR HAPPENS HERE
  }
?>

Hata ne demek?

3 Cevap

preg_match did not find a match, $matches boş bir dizi varsa. Yani preg_match erişmeden önce bir eşleşme bulursa kontrol $matches[0], örneğin olmalıdır:

function get_match($regex,$content)
{
    if (preg_match($regex,$content,$matches)) {
        return $matches[0];
    } else {
        return null;
    }
}

Bu hata hat 36 üzerinde bir hata olduğunu gösterir. Hat 36 üzerinde, bir diziye endeksleme, 0 ofset. Hata endeks tanımsız olduğunu söylüyor. Bu nedenle, $matches bir dizi olmamalıdır.

How to reproduce this error in PHP:

Boş bir dizi oluşturmak ve bu gibi bir anahtar verilen değeri için soruyorum:

php> $foobar = array();

php> echo gettype($foobar);
array

php> echo $foobar[0];

PHP Notice:  Undefined offset: 0 in 
/usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(578) : 
eval()'d code on line 1

What happened?

Size içermediği bir anahtar verilen değeri vermek için bir dizi sordu. Size NULL değeri verecektir sonra errorlog yukarıdaki hata koydu.

Bu dizide anahtar için baktım ve buldum undefined.

How to make the error not happen?

Eğer değeri için soran gitmeden önce anahtarı ilk varsa sor.

php> echo array_key_exists(0, $foobar) == false;
1

Anahtar varsa o yoksa, o zaman, onun değeri sorgulamak için gerek değeri olsun.